nginx content security policy header
Здравейте,
В този пост ще споделя как можем да защитим сайта си ако използваме nginx за уеб сървър.
Воден от поста на Скот Хелме за CSP тръгнах да тествам CSP header-и на root.bg. Използвах неговия инструмент securityheaders.com и накрая постигнах желания резултат – A+ 🙂
nginx content security policy header
Във виртуалния хост на сайта ни добавяме следните редове след location /
add_header Content-Security-Policy "block-all-mixed-content; frame-ancestors 'self' root.bg cdn.root.bg s.root.bg go.root.bg git.root.bg fonts.gstatic.com;"; add_header Content-Security-Policy-Report-Only "default-src https: data: 'unsafe-inline' 'unsafe-eval'; report-uri https://rootbg.report-uri.com/r/d/csp/reportOnly";
report-uri.com
Направих си регистрация в сайта report-uri.com и така започнах да събирам информация от уеб сървъра ми за XSS атаки, грешки в конфигурацията на уеб сървъра, мониторинг и всичко останало свързано с новите уеб стандарти.
Аз лично малко съм се олял с добавянето на излишни header-и, но почти всички от тях са за защита 🙂
HTTP/2 200 date: Wed, 17 Oct 2018 07:13:17 GMT content-type: text/html; charset=UTF-8 vary: Accept-Encoding set-cookie: PHPSESSID=d2lar8sp9vq24752mip9lu31ls; path=/; secure; HttpOnly expires: Thu, 19 Nov 1981 08:52:00 GMT cache-control: no-store, no-cache, must-revalidate pragma: no-cache x-powered-by: 🐧 link: https://root.bg/wp-json/; rel="https://api.w.org/" link: https://go.root.bg/21; rel=shortlink server: rws strict-transport-security: max-age=31536000; includeSubDomains; preload x-cache: HIT x-xss-protection: 1; mode=block; report=https://rootbg.report-uri.com/r/d/xss/enforce x-frame-options: SAMEORIGIN x-content-type-options: nosniff p3p: Can I help you? Contact me via https://root.bg/contacts/, CP=CAO ADMa DEVa IND PHY ONL UNI COM LOC feature-policy: sync-xhr 'self' https://root.bg content-security-policy: block-all-mixed-content; frame-ancestors 'self' root.bg cdn.root.bg s.root.bg go.root.bg git.root.bg fonts.gstatic.com; content-security-policy-report-only: default-src https: data: 'unsafe-inline' 'unsafe-eval'; report-uri https://rootbg.report-uri.com/r/d/csp/reportOnly referrer-policy: no-referrer-when-downgrade expect-ct: enforce; max-age=86400; report-uri=https://rootbg.report-uri.com/r/d/ct/enforce x-app-server: gevi x-slogan: Respect is earned, not given!
Това е!