怖い怖いクロスサイトスクリプティング(XSS)とサニタイジングの基本

クロスサイトスクリプティング(XSS)とサニタイジングの基本

クロスサイトスクリプティング(XSS)とは

  • 動的なwebを作成する時に、入力画面が発生する。
  • その入力画面( form要素)に、JavaScriptやHTMLの文字列を埋め込んで、悪意のある動作をさせることである。

 対策

「<」「>」「&」「"」「’」

具体的な置き換え

先ほどのHTMLにとって特別な意味を持つ記号を意味のない文字に置き換える
以下が具体例

& => "&amp;" 
< => "&lt;" 
> => "&gt;"
" => “&quot;”
' => &#x27; 
\=> "&#x2F;"

(引用元)

XSS (Cross Site Scripting) Prevention Cheat Sheet - OWASP

サニタイジングを行うタイミング

  • HTMLを出力する直前にエスケープを行う =>文字列を受け取った直後にエスケープすると、その文字列を使用して行う処理に異常が発生する可能性があるから

参考にさせていただいたサイト

viral-community.com Strutsで作るセキュアWebアプリケーション(1):適切なエスケープ処理でクロスサイトスクリプティングに備える (1/3) - @IT XSS (Cross Site Scripting) Prevention Cheat Sheet - OWASP codezine.jp javatechnology.net

※ Qiitaでも同一記事を投稿している qiita.com