0

I'm trying to work on a 'practice' app wherein the textbox value will be inserted to the database.

What happen is that when I insert the textbox.text value.

Ex. text =

           <script>alert('Hello')</script>

I get an error: A potentially dangerous Request.Form value was detected from the client (TextBox1="alert('XSS')...").

I'm already using sql parameters so values like ' " /// \\ are not a problem as of now.

4

4 に答える 4

2

HTMLを許可するには、ページにValidateRequest="false"を設定します。

ページレベル:

<%@ Page Language="c#"  ValidateRequest="false" AutoEventWireup="false" CodeBehind="TestPage.aspx.cs" Inherits="TestPage" %>

また、ASP.NET 4.0の場合、web.configに次を追加する必要があります。

<httpRuntime requestValidationMode="2.0" />
于 2012-06-09T13:13:41.940 に答える
1

テスト目的のみの場合は、ASP.NET バリデーターを禁止して、潜在的に危険な HTML/XML タグの検索を停止することができます。これを行うには、aspx ページで ValidateRequest を false に設定します。

<%@ Page Title="" Language="C#" ValidateRequest="false"

これは本番環境では推奨されませんが、あなたの場合はうまくいく可能性があります。次のMSDN リンクの詳細情報

于 2012-06-09T13:21:23.887 に答える
1

asp.netが警告しているのは(潜在的な)SQLの問題ではありません。その値を受け入れ、後でencoding なしでページに表示すると、不要なスクリプトが起動します。

現時点では無害なアラートが表示されますが、これらの値を任意のユーザーが入力できるようにすると、何が起こるかわかりません。

于 2012-06-09T13:40:42.223 に答える
0

連結文字列に壊れたタグを挿入するだけです。のように:

Insert into table values('<'+'h2'+'>'+'Another One'+'<'+'/'+'h2'+'>')
于 2014-12-09T13:45:23.843 に答える