WEBサイトにユーザがJavaScripを埋め込めると、任意の操作が可能になってしまい、非常に危険な脆弱性となります。
例えば管理者権限ユーザを狙ってセキュリティを解除させたり、情報をお漏らししたり…
これはクロスサイトスクリプティング(XSS)と呼ばれ、PHPではhtmlspecialchars()で対策できるようになっています。
とはいえ「全ページ中で1箇所でもhtmlspecialchars()忘れたら死ぬ」は辛くないですか?
自分は大丈夫?他のメンバーは?新人が来たら?そもそも"気をつける"が対策なのは…
この危険かつ面倒なXSSに対し、Content Security Policy(CSP)というHTTPヘッダが強力な防御策になります。
本発表ではCSPヘッダの紹介と実装方法、また実際にPHP + nginx + Vue構成でサービスを作った際にハマったポイントをお話しします