Files
sst_site/ADMINLTE_CSP_FIX.md
2025-10-26 22:14:47 +09:00

63 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AdminLTE CSP Fix - Исправление Content Security Policy
## Проблема
Content Security Policy (CSP) блокировал загрузку jQuery и Bootstrap из CDN, что приводило к ошибкам:
```
Content-Security-Policy: The page's settings blocked a script (script-src-elem) at https://code.jquery.com/jquery-3.6.0.min.js
Content-Security-Policy: The page's settings blocked a script (script-src-elem) at https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js
```
## Причина
В server.js в настройках helmet CSP для `scriptSrc` отсутствовали домены:
- `https://code.jquery.com` (для jQuery)
- `https://cdn.jsdelivr.net` (для Bootstrap)
## Решение
Обновлены CSP настройки в `/server.js`:
### ДО:
```javascript
scriptSrc: ["'self'", "'unsafe-inline'", "https://cdnjs.cloudflare.com", "https://unpkg.com", "https://cdn.tailwindcss.com"],
```
### ПОСЛЕ:
```javascript
scriptSrc: ["'self'", "'unsafe-inline'", "https://cdnjs.cloudflare.com", "https://unpkg.com", "https://cdn.tailwindcss.com", "https://code.jquery.com", "https://cdn.jsdelivr.net"],
```
## Полная CSP конфигурация
```javascript
app.use(helmet({
contentSecurityPolicy: {
directives: {
defaultSrc: ["'self'"],
styleSrc: ["'self'", "'unsafe-inline'", "https://fonts.googleapis.com", "https://cdnjs.cloudflare.com", "https://cdn.jsdelivr.net", "https://unpkg.com", "https://cdn.tailwindcss.com"],
fontSrc: ["'self'", "https://fonts.gstatic.com", "https://cdnjs.cloudflare.com"],
scriptSrc: ["'self'", "'unsafe-inline'", "https://cdnjs.cloudflare.com", "https://unpkg.com", "https://cdn.tailwindcss.com", "https://code.jquery.com", "https://cdn.jsdelivr.net"],
imgSrc: ["'self'", "data:", "https:"],
connectSrc: ["'self'", "ws:", "wss:", "https://cdnjs.cloudflare.com", "https://cdn.jsdelivr.net", "https://unpkg.com", "https://fonts.googleapis.com", "https://fonts.gstatic.com", "https://cdn.tailwindcss.com"]
}
}
}));
```
## Результат
✅ AdminLTE 3 теперь работает полностью:
- ✅ CSS стили загружаются
- ✅ jQuery загружается без ошибок CSP
- ✅ Bootstrap загружается без ошибок CSP
- ✅ AdminLTE JavaScript функции работают
- ✅ Интерактивные элементы функциональны
## Тестирование
После исправления CSP:
1. Перезапустить сервер: `npm start`
2. Открыть админку: `http://localhost:3000/admin`
3. Проверить консоль браузера - ошибки CSP исчезли
4. Проверить функциональность: навигация, выпадающие меню, модальные окна
## Примечания
- Исправление обеспечивает безопасность через CSP при разрешении необходимых CDN
- AdminLTE теперь полностью функциональна с корейской локализацией
- Все зависимости загружаются правильно