- .env.example: полный шаблон, защита секретов - .gitignore: явное исключение .env.* и секретов - layout.tsx: XSS — заменён dangerouslySetInnerHTML на next/script для SW - ESLint: no-console error (allow warn/error), ignore scripts/ - scripts/remove-console-logs.js: очистка console.log без glob - backend/routes/modules: README с планом рефакторинга крупных файлов - SECURITY.md: гид по секретам, XSS, CORS, auth, линту - .husky/pre-commit: запуск npm run lint + прочие правки приложения и бэкенда Co-authored-by: Cursor <cursoragent@cursor.com>
2.4 KiB
2.4 KiB
Безопасность проекта КЛГ АСУ ТК
1. Секреты и переменные окружения
- Никогда не коммитьте файлы
.env,.env.local,.env.productionи любые файлы с реальными ключами. - Используйте
.env.exampleкак шаблон: копируйте в.env.localи подставляйте значения только локально. - В продакшене храните секреты в защищённом хранилище (переменные окружения платформы, vault), не в коде.
- В
.gitignoreдобавлены:.env,.env.*,!.env.example,certs/,*.pem,*.key.
2. Защита от XSS
- Не используйте
dangerouslySetInnerHTMLс пользовательским вводом. - Для инлайн-скриптов используйте компонент
next/script(как вapp/layout.tsx). - Санитизация: для пользовательского контента используйте
DOMPurifyили аналог (см.lib/sanitize).
3. CORS и API
- CORS настроен только на разрешённые домены. В продакшене запрещён wildcard
*. - Бэкенд: переменная
CORS_ORIGINS— список доменов через запятую.
4. Авторизация
- В production отключите dev-обход:
ENABLE_DEV_AUTH=falseна бэкенде, не используйтеNEXT_PUBLIC_DEV_TOKENв проде. - Токены и сессии передавайте по HTTPS; при необходимости используйте httpOnly cookies.
5. Линтинг и автоматизация
- ESLint: правило
no-consoleв режиме error (допускаются толькоconsole.warnиconsole.error). - Перед коммитом запускайте
npm run lint. Pre-commit хук (Husky) может проверять линт и тесты.
6. Отчёт об уязвимостях
- Обнаруженные уязвимости сообщайте ответственным за безопасность (например, security@company.com или через приватный канал).
- Не создавайте публичные issue с описанием уязвимостей до их устранения.