XSS対策の実装方針
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>Webアプリケーション脆弱性対策]]
*目次 [#e8d94db3]
#contents
*概要 [#b4e11d55]
-XSSはスクリプトをインジェクションする攻撃で
--主にCookieを盗むために使用される。
--若しくは、HTML5以降では、WebStorageの情報を盗むために使...
--ただし、ソレ以外の情報を盗まれたり、フィッシング詐欺へ...
-[[ASP.NET]]でのXSS対策のサニタイジング方針について纏める。
*対応方針の材料 [#i55e79ef]
一般的に、どのような対応方法があるか?
**[[ASP.NET Web Forms]] [#y3ce5729]
***要求の検証 [#la7d807a]
要求の検証という機能があり、~
クロスサイトスクリプティング(以下、XSSと略す)の~
可能性のあるリクエストを識別し例外を発生させる機能がある。
-C# - ASP.NETのValidateRequest - Qiita~
http://qiita.com/akoba/items/adc148ab753ad6960805
この機能を無効にするには以下の手順に従う。
[[Web.config>.NET config#u3d1af27]]で
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>
と指定し(Modeが4.0だと全ページで強制ONになる)、
個別のページで@Pageディレクティブを以下のように設定する必...
<@ Page validateRequest="false" %>
ただし、無効にした場合は、独自の実装で~
XSSを防止するためのサニタイジング処理を実装する必要がある。
***コントロール [#ad211bf5]
-TextBoxコントロール~
ASP.NETでは最低限、TextBoxコントロールが既定でサニタイジ...
-その他のコントロール~
しかし、Labelコントロール等は既定でサニタイジングされない...
TextBoxコントロールの入力をそのままLabelコントロール等に...
XSSが可能な脆弱性のあるWebアプリケーションが出来上がる。
**[[ASP.NET MVC]] [#n6ee92f6]
-ASP.NET MVCのセキュリティ対策とクライアントサイドスクリ...
http://codezine.jp/article/detail/4467
***要求の検証 相当 [#g5fcd1f4]
MVCには、Web Formsの「要求の検証」相当の機能がないので、...
***コントロール 相当 [#p3d73c1d]
-MVCには、Web Formsの「コントロール」相当の機能がないので...
-HTMLヘルパには ≒ Web Formsの「コントロール」で、基本的に...
*対応方針の案 [#fa2c6c6c]
案件依存だが・・・。
**[[ASP.NET Web Form]] [#u0873b5b]
***要求の検証 = ON の場合 [#x62c89f6]
要求の検証をONで、ランタイムエラー表示を回避したい場合、~
HttpRequest.FilterでPOSTのBodyをHTMLエンコードするなどの...
-HttpRequest.Filter プロパティ (System.Web)~
https://msdn.microsoft.com/ja-jp/library/system.web.httpr...
Webメソッド(ASP.NET Web Services, WCF, ASP.NET Web API)...
エンコードしないように、HTTPメソッドやURLのファイル拡張子...
***要求の検証 = OFF の場合 [#i84afbe2]
要求の検証をOFFにした際の仕様の組み方は、~
基本的には、
-[[カスタムコントロールのカスタマイズ>http://techinfoofmi...
-ライブラリ等で都度変換を行うか?
になると考える。
**[[ASP.NET MVC]] [#g3644480]
同様に、ValidateInput属性か、HTMLヘルパを使用する。
***要求の検証 = ON の場合 [#ca501f85]
ValidateInput属性をtrueに設定する。
[ValidateInput(true)]
***要求の検証 = OFF の場合 [#h7532d3c]
-ValidateInput属性がfalseの場合、
[ValidateInput(false)]
-HTMLヘルパでサニタイジングする。
**判断材料 [#z95fb206]
こちらは、検出されたら基本的に対応する。
-攻撃の成功が割と明らかなので、誤検知が少ない。
-攻撃されると、CookieやSessionIDが漏洩するので、インター...
***攻撃対象 [#p4e64803]
一般的に、足がつかない、
-匿名アクセス可能なサイトか、
-フリーメールサービスのアドレスでサインアップ可能なサイト
が多いと考える。
***攻撃者 [#z2bcbf96]
-上記のような匿名アクセスが可能なサイトの場合、誰でも攻撃...
-会員制サイトの場合、そのサイトを利用可能な会員でしないと...
***[[攻撃方法・対策方法>https://dotnetdevelopmentinfrastr...
*[[セキュリティ強化のHTTPヘッダ]] [#cd90af7e]
*参考 [#e1952d66]
-クロスサイトスクリプティング - Wikipedia~
https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%82%B9...
-情報処理推進機構:情報セキュリティ:脆弱性関連情報の取扱...
知っていますか?脆弱性 (ぜいじゃくせい)/2. クロスサイト...
https://www.ipa.go.jp/security/vuln/vuln_contents/xss.html
-クロスサイトスクリプティング(XSS)とは - 脅威と対策 | ...
http://www.trendmicro.co.jp/jp/security-intelligence/thre...
----
Tags: [[:テスト]]
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>Webアプリケーション脆弱性対策]]
*目次 [#e8d94db3]
#contents
*概要 [#b4e11d55]
-XSSはスクリプトをインジェクションする攻撃で
--主にCookieを盗むために使用される。
--若しくは、HTML5以降では、WebStorageの情報を盗むために使...
--ただし、ソレ以外の情報を盗まれたり、フィッシング詐欺へ...
-[[ASP.NET]]でのXSS対策のサニタイジング方針について纏める。
*対応方針の材料 [#i55e79ef]
一般的に、どのような対応方法があるか?
**[[ASP.NET Web Forms]] [#y3ce5729]
***要求の検証 [#la7d807a]
要求の検証という機能があり、~
クロスサイトスクリプティング(以下、XSSと略す)の~
可能性のあるリクエストを識別し例外を発生させる機能がある。
-C# - ASP.NETのValidateRequest - Qiita~
http://qiita.com/akoba/items/adc148ab753ad6960805
この機能を無効にするには以下の手順に従う。
[[Web.config>.NET config#u3d1af27]]で
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>
と指定し(Modeが4.0だと全ページで強制ONになる)、
個別のページで@Pageディレクティブを以下のように設定する必...
<@ Page validateRequest="false" %>
ただし、無効にした場合は、独自の実装で~
XSSを防止するためのサニタイジング処理を実装する必要がある。
***コントロール [#ad211bf5]
-TextBoxコントロール~
ASP.NETでは最低限、TextBoxコントロールが既定でサニタイジ...
-その他のコントロール~
しかし、Labelコントロール等は既定でサニタイジングされない...
TextBoxコントロールの入力をそのままLabelコントロール等に...
XSSが可能な脆弱性のあるWebアプリケーションが出来上がる。
**[[ASP.NET MVC]] [#n6ee92f6]
-ASP.NET MVCのセキュリティ対策とクライアントサイドスクリ...
http://codezine.jp/article/detail/4467
***要求の検証 相当 [#g5fcd1f4]
MVCには、Web Formsの「要求の検証」相当の機能がないので、...
***コントロール 相当 [#p3d73c1d]
-MVCには、Web Formsの「コントロール」相当の機能がないので...
-HTMLヘルパには ≒ Web Formsの「コントロール」で、基本的に...
*対応方針の案 [#fa2c6c6c]
案件依存だが・・・。
**[[ASP.NET Web Form]] [#u0873b5b]
***要求の検証 = ON の場合 [#x62c89f6]
要求の検証をONで、ランタイムエラー表示を回避したい場合、~
HttpRequest.FilterでPOSTのBodyをHTMLエンコードするなどの...
-HttpRequest.Filter プロパティ (System.Web)~
https://msdn.microsoft.com/ja-jp/library/system.web.httpr...
Webメソッド(ASP.NET Web Services, WCF, ASP.NET Web API)...
エンコードしないように、HTTPメソッドやURLのファイル拡張子...
***要求の検証 = OFF の場合 [#i84afbe2]
要求の検証をOFFにした際の仕様の組み方は、~
基本的には、
-[[カスタムコントロールのカスタマイズ>http://techinfoofmi...
-ライブラリ等で都度変換を行うか?
になると考える。
**[[ASP.NET MVC]] [#g3644480]
同様に、ValidateInput属性か、HTMLヘルパを使用する。
***要求の検証 = ON の場合 [#ca501f85]
ValidateInput属性をtrueに設定する。
[ValidateInput(true)]
***要求の検証 = OFF の場合 [#h7532d3c]
-ValidateInput属性がfalseの場合、
[ValidateInput(false)]
-HTMLヘルパでサニタイジングする。
**判断材料 [#z95fb206]
こちらは、検出されたら基本的に対応する。
-攻撃の成功が割と明らかなので、誤検知が少ない。
-攻撃されると、CookieやSessionIDが漏洩するので、インター...
***攻撃対象 [#p4e64803]
一般的に、足がつかない、
-匿名アクセス可能なサイトか、
-フリーメールサービスのアドレスでサインアップ可能なサイト
が多いと考える。
***攻撃者 [#z2bcbf96]
-上記のような匿名アクセスが可能なサイトの場合、誰でも攻撃...
-会員制サイトの場合、そのサイトを利用可能な会員でしないと...
***[[攻撃方法・対策方法>https://dotnetdevelopmentinfrastr...
*[[セキュリティ強化のHTTPヘッダ]] [#cd90af7e]
*参考 [#e1952d66]
-クロスサイトスクリプティング - Wikipedia~
https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%82%B9...
-情報処理推進機構:情報セキュリティ:脆弱性関連情報の取扱...
知っていますか?脆弱性 (ぜいじゃくせい)/2. クロスサイト...
https://www.ipa.go.jp/security/vuln/vuln_contents/xss.html
-クロスサイトスクリプティング(XSS)とは - 脅威と対策 | ...
http://www.trendmicro.co.jp/jp/security-intelligence/thre...
----
Tags: [[:テスト]]
ページ名: