【问题标题】:A potentially dangerous Request.Path value was detected from the client (<) System.Web.HttpRequest.ValidateInputIfRequiredByConfig()从客户端检测到潜在危险的 Request.Path 值 (<) System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
【发布时间】:2019-04-04 05:00:22
【问题描述】:

我正在使用 WEB API 2。每当有人试图将脚本插入我的 API 时,我想用自定义消息抛出 404 或 400 错误,而不是 500 错误。

这与 SO 问题不同 - Getting "A potentially dangerous Request.Path value was detected from the client (&)" 因为我不想允许,而是抛出自定义错误。

基本上,如果可能的话,我只想在检测到脚本时返回,而不执行任何控制器。

【问题讨论】:

    标签: c# asp.net asp.net-web-api asp.net-web-api2 xss


    【解决方案1】:

    您能否说明一下您为什么要这样做?

    我建议您查看 global.asax 事件 Application_BeginRequest() 并在此处检查自定义方法中未验证的属性。这将确保您不需要完全禁用验证并让自己容易受到攻击?

    【讨论】:

    • 但是正如这个答案中提到的,我将无法做到stackoverflow.com/a/15578829/2390553
    • 我想这样做,因为它在用户故事中是这样写的。我试图和我的前辈谈谈,但他坚持只这样做
    • 是的,但是如果你的方法没有抛出自定义异常,那么通过在 global.asax 上挂接它,你仍然会受到默认行为 (500) 的保护。我不主张您禁用它,而是在应用程序抛出 500 之前添加您自己的方法?这是我可以建议为您提供两全其美的最接近的方法。
    猜你喜欢
    • 2012-04-06
    • 2017-10-07
    • 2011-08-06
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    相关资源
    最近更新 更多