MVC3 WebアプリでXSS攻撃をテストしていますValidateRequest
が、.Netのデフォルトで奇妙な動作に気づいています。
いくつかのテキストフィールドを含むフォームがあり、次のような「危険な」文字列を入力すると、次のようになります。
<img src=x onerror=alert(/XSS/.source)>
「潜在的に危険なRequest.Formが検出されました...」というメッセージが期待どおりにポップアップ表示されます。
私の理解では、この検証によってリクエストが自動的にキャンセルされ、変更は行われません。ただし、ページを更新すると、問題のテキストフィールドに「ED7F9」の値が表示されるようになりました。
の値を保存しようとすると、同様のことが起こります<script>alert("hi")</script>
。この場合、検証メッセージの後、フィールドの残りのテキストは次のとおりです。 "alert("
これを以前に見た人は、なぜこれが起こっているのかについて何か手がかりを持っていますか?