今日、やったこと サニタイジング エラーページ フィルター 今日のホワイトボード サニタイジング ユーザー入力内容をブラウザに出力する際、HTMLタグが含まれていると、問題が発生することがあります。例えば、<script>タグでJavaScriptが入力されると、JavaScriptを実行することなります。 そこで、出力の際に本来HTMLタグが含まれない箇所にHTMLタグがある場合、HTMLタグとして出力しないようにサニタイジングを行います。 例えば、<script>と入力された場合、<は<へ、>は>に置き換えて出力します。 図 サニタイジング サニタイジングを自力でやるのはめんどくさいため、Apache Commons Textライブラリを利用しました。 エラーページ いままではエラーが発生すると、そのまま出力していました。 しかし、これではサーバー情報を公開することになるため、セキュリティ上問題です。 そこで、エラーが発生したらあらかじめ用意したエラーページを表示するようにします。 図 エラーページ リダイレクトとフォワードの違い リダイレクトはクライアントがリダイレクト先を改めてリクエストします。よって、クライアントは2回リクエストすることになります。 フォワードはフォワード先をサーバーが読み込み、出力します。そのため、フォワード先は同じアプリケーション内に限定されます。 図 リダイレクトとフォワード セッションIDを推測しずらくする セッションIDが漏洩すると、セッションハイジャックにつながります。 セッションID漏洩を防ぐ手段として、前回は 通信経路の暗号化(HTTPSの利用) JavaScr...