技術ネタ。
あまり知ってても知らなくてもどうでも良い技術ネタ。
web.configに以下のコード書くと勝手にバリデーションしてくれて便利だよ☆ってやつなんだけどMVC2とMVC3の挙動が違いすぎて「は?」ってなった。
<configuration>
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>
</configuration>
MVC2でquerystringに危険なコードが埋め込まれた場合は以下の500エラーが発生
System.Web.HttpRequestValidationException: 危険な可能性のある Request.QueryString 値がクライアント (="...T 1,NULL,'<script>alert("XSS")...") から検出されました。
でMVC3だと普通に200オッケー。
バリデーションされてねーじゃん!って思っでquerystringからMVCにぶっこんでみたら500エラー発生。ちゃんと出来てる。。
ようわからんからいろいろ調べたらMVC3以降は.NETFramework4系に移行して挙動も違うんだと。
最新のHttpRequestValidationExceptionがパラメータで検知した段階でエラーを出す仕様みたい。
まっ、普通に200でいいよね