ASP.NETのクロスサイト スクリプト対策

ASP.NETのクロスサイトスクリプト対策について最近始めて知ったのでメモ。

業務アプリケーションでASP.NETを使用しており、ユーザからエラーになって使用できないと連絡があった。

調べて見るとテキストボックスに<>を使用していることが分かり、それが原因なのは間違いなかったが、どこで検証してエラーになっているのか知りたくて調べてみた。

エラーとしてはHttpRequestValidationExceptionが発生します。

https://msdn.microsoft.com/ja-jp/library/system.web.httprequestvalidationexception(v=vs.110).aspx

どうもASP.NETのデフォルト(Loadされる前のイベントで検証されているらしい)でエラーとしているようです。

半角で<script>や<!、<?はNGとなります。MSDNに一部禁止例がのっていましたが、セキュリティの関係上どのような組み合わせをエラーとしているかは公開していないようです。

https://msdn.microsoft.com/ja-jp/library/ff649310.aspx