だから私はフォームの検証、入力、エラーメッセージなどを設定しています...そして、収集している多くの情報をある時点で再度出力する必要があることに気付きました。
したがって、入力を次のようにラップしました。
Server.HtmlEncode(txtbox.text);
XSS タイプの攻撃を確実に回避するには、他に何をすべきですか? ページにデータを書き込むときに何かをする必要がありますか?
だから私はフォームの検証、入力、エラーメッセージなどを設定しています...そして、収集している多くの情報をある時点で再度出力する必要があることに気付きました。
したがって、入力を次のようにラップしました。
Server.HtmlEncode(txtbox.text);
XSS タイプの攻撃を確実に回避するには、他に何をすべきですか? ページにデータを書き込むときに何かをする必要がありますか?
データを収集するときではなく、ページにデータを出力するときに HtmlEncode することをお勧めします。Stack Overflow ポッドキャスト #58から:
データベースに保存されているデータを HTML エンコードしないでください。Damien Guardと Joel Spolskyのアドバイスを参考にしてください! 両方の表現を保存することを選択できますが、HTML だけを保存することはできません。最高レベルの精度で生データを使用します。
リンク
セキュリティの観点から、私たちの Web フォームはネイキッドであり、100% 脆弱です。データがそれらに渡されるすべての方法を調べ、必要に応じてテストする必要があります。
* Form Fields
* URL Query Strings
* Cookies
* Database
* ViewState
セキュリティで保護された Web アプリケーションの MSDN 設計ガイドライン: http://msdn.microsoft.com/en-us/library/aa302420.aspx
Microsoft アンチクロス サイト スクリプティング ライブラリ: http://msdn.microsoft.com/en-us/security/aa973814.aspx
コード分析ツール (CAT.NET): http://www.microsoft.com/downloads/details.aspx?FamilyId=0178e2ef-9da8-445e-9348-c93f24cc9f9d&displaylang=en
ASP.NET データ入力の検証: http://www.codersbarn.com/post/2008/11/01/ASPNET-Data-Input-Validation.aspx :
編集: 近日公開予定の新しい Web Protection Library CTP: http://blogs.msdn.com/securitytools/archive/2009/10/17/web-protection-library-ctp-release-coming-soon.aspx