4

検索フォームを備えたWebアプリケーションがあり、ユーザーはテキストを入力でき、入力内容に基づいて結果を制限します。最近、次のエラーが発生し始めました。

System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (ctl00$ContentPlaceHolder1$results_search="...967.hcpm, <a href="http://www....").

このエラーは毎日1日中発生しており、ボットから発生しているようです。エラーを見ると、ボットがhtml ahrefリンクを検索フィールドに配置して検索しようとしているように見え、エラーが発生します。

調べてみると、これを処理する方法が2つあることがわかります。Jqueryを使用するか、validateRequestをfalseにしてから、コードビハインドページでhtmlencodeを使用します。jqueryコードがボットで機能するかどうか誰かが知っていますか?ボットがこれをどのように行っているかはわかりません。ページを押してボタンをクリックするか、他の方法でリクエストを送信する場合、ボタンのクリックがポストバックで検索をトリガーするため、POSTを使用して何も送信されません。検索ページへのURLを指定すると、ページはそれ自体にポストバックし、PostBackでは検索が完了します。

4

4 に答える 4

8

web.configファイルのタグ内にhttpRuntime、属性を持つ要素を挿入しますrequestValidationMode="2.0"

例:

<configuration>
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>
</configuration>
于 2013-06-05T09:22:50.163 に答える
2

私たちが持っていた解決策の1つは、IPに対してこれらのエラーを記録し、送信が多すぎる場合はアプリケーションレベルでアクセスをブロックすることでした。

それは爆弾の証拠ではありませんが、私たちが持っていた数を減らしました。ただし、それでもエンジニアリングと処理が必要ですが、IISに煩わされる必要はありません。

ただし、できることはほとんどありません。彼らはあなたのフォームをスパムし、IPをブロックすることは短期的な解決策にすぎず、複数のIPなどからあなたを攻撃します。検証が厳しく、インジェクション攻撃などの影響を受けないことを確認して無視してください。これは事実です。最近の生活の。

特に中国のような場所から、私たちは定期的にこのような打撃を受けます。

于 2012-12-12T15:29:40.437 に答える
1

別の解決策を試すことができます。defaultRedirect=" "このようなエラーが発生するたびに、ページがデフォルトのURLにリダイレクトされます(ページをに設定してください)。

<system.web>
    <customErrors mode="On" defaultRedirect="~/Home/Index"/>
</system.web>

そのため、ボットは受信トレイや現在作成されているその他の問題をスパムすることができなくなります。

于 2013-01-21T09:33:02.823 に答える
1

これは私のために働いた。web.configファイルに追加することでエラーを取り除くことができました:

<httpRuntime requestValidationMode="2.0" />

コード全体:

<httpRuntime requestValidationMode="2.0" maxRequestLength="102400" />
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0">

これがお役に立てば幸いです。

于 2013-12-13T18:51:21.010 に答える