Some checks failed
Deploy on push / deploy (push) Failing after 39s
### 🚨 CRITICAL Security Fixes - **🔒 Open Redirect Protection**: Добавлена строгая валидация redirect_uri против whitelist доменов - **🔒 Rate Limiting**: Защита OAuth endpoints от брутфорса (10 попыток за 5 минут на IP) - **🔒 Logout Endpoint**: Критически важный endpoint для безопасного отзыва httpOnly cookies - **🔒 Provider Validation**: Усиленная валидация OAuth провайдеров с логированием атак - **🚨 GlitchTip Alerts**: Автоматические алерты безопасности в GlitchTip при критических событиях ### 🛡️ Security Modules - **auth/oauth_security.py**: Модуль безопасности OAuth с валидацией и rate limiting + GlitchTip алерты - **auth/logout.py**: Безопасный logout с поддержкой JSON API и browser redirect - **tests/test_oauth_security.py**: Комплексные тесты безопасности (11 тестов) - **tests/test_oauth_glitchtip_alerts.py**: Тесты интеграции с GlitchTip (8 тестов) ### 🔧 OAuth Improvements - **Minimal Flow**: Упрощен до минимума - только httpOnly cookie, нет JWT в URL - **Simple Logic**: Нет error параметра = успех, максимальная простота - **DRY Refactoring**: Устранено дублирование кода в logout и валидации ### 🎯 OAuth Endpoints - **Старт**: `v3.dscrs.site/oauth/{provider}` - с rate limiting и валидацией - **Callback**: `v3.dscrs.site/oauth/{provider}/callback` - безопасный redirect_uri - **Logout**: `v3.dscrs.site/auth/logout` - отзыв httpOnly cookies - **Финализация**: `testing.discours.io/oauth?redirect_url=...` - минимальная схема ### 📊 Security Test Coverage - ✅ Open redirect attack prevention - ✅ Rate limiting protection - ✅ Provider validation - ✅ Safe fallback mechanisms - ✅ Cookie security (httpOnly + Secure + SameSite) - ✅ GlitchTip integration (8 тестов алертов) ### 📝 Documentation - Создан `docs/oauth-minimal-flow.md` - полное описание минимального flow - Обновлена документация OAuth в `docs/auth/oauth.md` - Добавлены security best practices
42 lines
1.4 KiB
JSON
42 lines
1.4 KiB
JSON
{
|
|
"name": "publy-panel",
|
|
"version": "0.9.29",
|
|
"type": "module",
|
|
"description": "Publy, a modern platform for collaborative text creation, offers a user-friendly interface for authors, editors, and readers, supporting real-time collaboration and structured feedback.",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"prebuild": "node scripts/check-graphql-server.js",
|
|
"build": "npm run codegen:all && vite build",
|
|
"serve": "vite preview",
|
|
"lint": "biome check . --fix",
|
|
"format": "biome format . --write",
|
|
"typecheck": "tsc --noEmit",
|
|
"codegen": "graphql-codegen --config codegen.ts",
|
|
"codegen:all": "npm run codegen"
|
|
},
|
|
"devDependencies": {
|
|
"@biomejs/biome": "^2.2.4",
|
|
"@graphql-codegen/cli": "^6.0.0",
|
|
"@graphql-codegen/client-preset": "^5.0.1",
|
|
"@graphql-codegen/introspection": "^5.0.0",
|
|
"@graphql-codegen/typescript": "^5.0.0",
|
|
"@graphql-codegen/typescript-operations": "^5.0.0",
|
|
"@graphql-codegen/typescript-resolvers": "^5.0.0",
|
|
"@solidjs/router": "^0.15.3",
|
|
"@types/node": "^24.5.2",
|
|
"@types/prismjs": "^1.26.5",
|
|
"graphql": "^16.11.0",
|
|
"graphql-tag": "^2.12.6",
|
|
"lightningcss": "^1.30.1",
|
|
"prismjs": "^1.30.0",
|
|
"solid-js": "^1.9.9",
|
|
"terser": "^5.44.0",
|
|
"typescript": "^5.9.2",
|
|
"vite": "^7.1.7",
|
|
"vite-plugin-solid": "^2.11.7"
|
|
},
|
|
"overrides": {
|
|
"vite": "^7.1.7"
|
|
}
|
|
}
|