Для защиты от XSS настройте CSP с nonce: (1) генерируйте nonce каждый запрос ($nonce = base64_encode(random_bytes(16))); (2) добавьте в заголовок script-src 'nonce-{$nonce}'; (3) проставьте атрибут nonce='{$nonce}' на каждый inline <script>. Без unsafe-inline.
$nonce = base64_encode(random_bytes(16));. Обязательно новый nonce на каждый запрос.header("Content-Security-Policy: default-src 'self'; script-src 'self' 'nonce-{$nonce}'; style-src 'self' 'nonce-{$nonce}'; object-src 'none'; base-uri 'self'");<script nonce="<?= $nonce ?>">console.log('ok');</script>. Без nonce скрипт будет заблокирован.Content-Security-Policy-Report-Only: ...; report-uri /csp-report.php. Собирайте violations перед enforcing.Нет для быстрой проверки. Для continuous-мониторинга — бесплатный аккаунт.