web-dev-qa-db-ja.com

「潜在的に危険なRequest.Path値がクライアントから検出されました(&)」を取得

レガシーURLの問題があり、ホームページのリクエストであるかのようにランダムなURLをサポートする必要があります。一部のURLには、エラーを生成する文字が含まれています「クライアントから潜在的に危険なRequest.Path値が検出されました(&)」。このサイトはASP.Net MVC 3(C#)で記述されており、IIS 7.5で実行されています。

URLの例を次に示します...

http://mywebsite.com/Test123/This_&_That

キャッチオールルートの設定方法は次のとおりです(特定のページをキャッチする他のルートがあります)...

routes.MapRoute(
    "Default", // Route name
    "{garb1}/{garb2}", // URL with parameters
    new { controller = "Website", action = "Home", garb1 = UrlParameter.Optional, garb2 = UrlParameter.Optional } // Parameter defaults
);

Web.configファイルに次のものを追加しました...

<configuration>
    <system.web>
        <pages validateRequest="false" />
        <httpRuntime requestValidationMode="2.0" />
    </system.web>
<configuration>

また、URLをキャッチするアクションにValidateInput属性を追加しました...

public class WebsiteController : Controller
{
    [ValidateInput(false)]
    public ActionResult Home()
    {
        return View();
    }
}

しかし、まだエラーが発生します。なぜアイデアがありますか?私は何か見落としてますか?現在、ローカルの開発サーバーで実行しています(これらの修正はまだ運用環境で試していません)。

112
Brian

設定ファイルでこれらの設定を試すこともできますが

<system.web>
    <httpRuntime requestPathInvalidCharacters="" requestValidationMode="2.0" />
    <pages validateRequest="false" />
</system.web>

URLパスでアンダースコアに置き換える「&」などの文字を使用しないようにします。

160

私はこのタイプのエラーに直面しました。かみそりから関数を呼び出す。

public ActionResult EditorAjax(int id, int? jobId, string type = ""){}

行を変更してそれを解決します

から

<a href="/ScreeningQuestion/EditorAjax/5&jobId=2&type=additional" /> 

<a href="/ScreeningQuestion/EditorAjax/?id=5&jobId=2&type=additional" />

私のroute.configは

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional }, new string[] { "RPMS.Controllers" } // Parameter defaults
        );
5
reza.cse08

MvcのいくつかのテキストボックスにのみHTMLタグを許可する場合

ひとつできること

コントローラー内

 [ValidateInput(false)]
public ActionResult CreateNewHtml()  //view
{
    return View();
}
[ValidateInput(false)]
[HttpPost]
public ActionResult CreateNewHtml(cbs obj)//view cbs is database class
{
    repo.AddHtml(obj);
    return View();
}
1
Pavan

以下の行がweb.configファイルに存在することを確認してください

<system.web> <httpRuntime requestPathInvalidCharacters="" /> </system.web>

0
Balamurugan

Silverlight ArcGISマップビューアーがマップを読み込んでいない理由を理解しようとすると、Fiddlerで同じエラーが発生していました。私たちのケースでは、コード内のURLのタイプミスでした。何らかの理由でそこに等号がありました。
http:= // someurltosome/awesome/place
の代わりに
http:// someurltosome/awesome/place

その等号を取り出した後、それは(もちろん)うまくいきました。

0
Josh P