Files
breadcrumb-the-shire/web/js/app-init.js
fs ad8f30cb09 feat(security): add Content-Security-Policy headers with strict script-src
Eliminate all inline scripts to enable script-src 'self' without
'unsafe-inline', providing strong XSS mitigation via CSP.

Inline script removal:
- login.phtml: replace inline APP_ASSET_BASE with data-asset-base
  attribute + app-boot.js (matching default.phtml pattern)
- api-docs: extract SwaggerUI init to js/pages/admin-api-docs-index.js
- docs: extract checkbox enablement to js/pages/admin-docs-index.js
- language-switcher: replace onchange handler with data-auto-submit
  attribute + js/components/app-auto-submit.js event listener

CSP policy (dev + prod nginx):
  default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline';
  img-src 'self' data:; font-src 'self'; connect-src 'self';
  form-action 'self'; base-uri 'self'; frame-ancestors 'none';
  manifest-src 'self'

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 19:24:10 +01:00

26 lines
1.1 KiB
JavaScript

import './core/app-telemetry.js';
import './components/app-flash-auto-dismiss.js';
import './components/app-tabs.js';
import './components/app-fslightbox-refresh.js';
import './components/app-password-hints.js';
import './components/app-copy-badge.js';
import './components/app-multiselect-init.js';
import './components/app-nav-history.js';
import './components/app-toggle-sidebar.js';
import './components/app-toggle-aside-panels.js';
import './components/app-toggle-details-aside.js';
import './components/app-filter-drawer.js';
import './components/app-active-filter-chips.js';
import './components/app-global-search.js';
import './components/app-theme-toggle.js';
import './components/app-contrast-toggle.js';
import './components/app-confirm-actions.js';
import './components/app-details-state.js';
import './components/app-tenant-switcher.js';
import './components/app-color-default-toggle.js';
import './components/app-custom-field-options-toggle.js';
import './components/app-tenant-sso-toggle.js';
import './components/app-settings-telemetry.js';
import './components/app-standard-detail-page.js';
import './components/app-auto-submit.js';