2017-08-16 12 views
0

最新バージョンのASP.NET MVC 5.2.3を使用してWebアプリケーションを作成しています。私はXSS攻撃に懸念しています。 ASP.NETコアでは、XSSとこのフレームワークを完全に驚かせていますが、この攻撃から完全に保護されていますが、私のプロジェクトに必要なサードパーティーは不足しています。ここに私の心配がある。私はすでにカスタムエラーも有効にしていましたが、私は現在テストのためにそれを無効にしました。XSSからASP.NET MVCを保護または保護する方法は?

しかし、これもまた捕捉されたいと思っています。

  1. 入力の検証が渡されます。この例外またはエラーを回避する。

潜在的に危険なRequest.Form値がクライアント(Name = "")から検出されました。

[AllowHtml]属性を使用すると、これは問題ないですか、AntiXssライブラリを使用しています。

  1. ただし、URLから。たとえばURLを、

    http://localhost:54642/Employees/

    http://localhost:54642/Employees/?a=<script> 
    

link or url

このエラーは、潜在的に危険なRequest.Path値がクライアント(<)から検出された、

を好むべきです。

私のソリューションはWeb.configからこれを有効にしています。

しかしトロイハント、これは、このエラーのために良いかより良い方法ではありません彼のチュートリアルから言いました。だから私はこのXSS攻撃から最良のソリューションを探すことに決めました。

私は通常私のコントローラ上で、私は確信して変数やデータを渡すときにも、私は常に宣言トークン

[ValidateAntiForgeryToken] 

を検証作られた、この偽造防止トークン

@Html.AntiForgeryToken() 

を追加私のフォームで

答えて

2

正しい変数。そのメンバーエリアのページでは、常に

[Authorize] // for registered user 

    or more filtered 

    [Authorize(Roles = "SUBSCRIBER.VIEW")] 

のような正しいメンバーの役割の例へのアクセスを制限することができますとにかく場合は、以下の検証のみレイジー検証.NET 4.5用と

// web.config 
    <system.Web> 
    <httpRuntime targetFramework="4.5" /> 
    </system.Web> 

// enabling anti-xss 
    <httpRuntime targetFramework="4.5" encoderType="System.Web.Security.AntiXss.AntiXssEncoder,System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 

リクエスト上記の適用に導入されましたASP.NET 4.5、私は ちょうどそれについていくつかのテストを行った、それは あなたが4.5フレームワークをインストールした後に、 "requestValidationMode"をどのように設定するかに関係なく、 が有効になっているようです。

+0

ありがとう、これはCSRF攻撃のためですが、私はXSSセキュリティが必要です。 – Patrick

+0

タグなし[AllowHtml]あなたのフォームにはすでにフォームが保護されているはずですが、フォームを信頼できない場合は、このAntiXss.AntiXssEncoderを使用できます。 URL保護の例では –

+0

、localhost:8080/Employees/

0

OWASPサイトをチェックしてください。ここで私はWebAPIアプリケーションのweb.configファイル内のsystem.webに追加する一般的なものです。

<httpProtocol> 
    <customHeaders> 
    <remove name="Server" /> 
    <remove name="X-Powered-By" /> 
    <remove name="X-Frame-Options" /> 
    <remove name="X-XSS-Protection" /> 
    <remove name="X-Content-Type-Options" /> 
    <remove name="Cache-Control" /> 
    <remove name="Pragma" /> 
    <remove name="Expires" /> 
    <remove name="Content-Security-Policy"/> 
    <clear /> 
    <add name="X-Frame-Options" value="DENY" /> 
    <add name="X-XSS-Protection" value="1; mode=block"/> 
    <add name="X-Content-Type-Options" value="nosniff" /> 
    <add name="Cache-Control" value="no-cache, no-store" /> 
    <add name="Pragma" value="no-cache" /> 
    <add name="Expires" value="Sun, 1 Jan 2017 00:00:00 UTC" /> 
    <add name="Content-Security-Policy" value="default-src 'self' 'unsafe-inline' data; img-src https://*;"/> 
    </customHeaders> 
</httpProtocol> 
関連する問題