XSS(クロスサイトスクリプティング)は、Webページに 悪意ある JavaScript を仕込み、それを見た人の ブラウザ 上で実行させる 攻撃です。
原因は、利用者の入力を、そのまま画面に表示してしまう 作りです。たとえば掲示板やコメント欄に、攻撃者がスクリプトを含む文章を投稿し、それが無防備に表示されると、他の閲覧者のブラウザでそのスクリプトが動いてしまいます。
これにより、次のような被害が起こり得ます。
防御の基本は、表示する前に無害化(エスケープ)する ことです。
<や>などの記号を、ただの文字として表示するよう変換する。- 入力をHTMLとして解釈させない。
- 対策として、実行できるスクリプトを制限する仕組み(CSP)も併用する。
近年の フレームワーク は、標準でエスケープしてくれるものが多いですが、仕組みを理解して使うことが大切です。