相关疑难解决方法(0)

Server.UrlEncode与HttpUtility.UrlEncode

Server.UrlEncode和HttpUtility.UrlEncode之间有区别吗?

.net asp.net urlencode

173
推荐指数
6
解决办法
14万
查看次数

是否允许双重逃逸危险?

我有一个ASP.NET MVC应用程序,其路由允许通过/ search/<searchterm>搜索内容.

当我提供"search/abc"时,它运行良好,但是当我提供"/ search/a + b + c"(正确的url编码)时,IIS7拒绝HTTP错误404.11 的请求(请求过滤模块配置为拒绝请求包含双转义序列).首先,它为什么这样做?它似乎只是抛出错误,如果它是URL的一部分,但不作为查询字符串的一部分(/ transmit?q = a + b + c工作正常).

现在我可以在我的web.config的安全部分启用双转义请求,但我不愿意这样做,因为我不明白其含义,也没有为什么服务器拒绝请求"a + b + c"为URL的一部分,但作为查询字符串的一部分接受.

有人可以解释并提供一些建议吗?

c# asp.net-mvc iis-7

133
推荐指数
1
解决办法
7万
查看次数

获取"从客户端(&)检测到潜在危险的Request.Path值"

我有一个遗留代码问题,需要我支持随机网址,就好像它们是对主页的请求一样.某些URL中包含的字符会生成错误"从客户端(&)检测到潜在危险的Request.Path值".该站点使用ASP.Net MVC 3(在C#中)编写,并在IIS 7.5上运行.

这是一个示例URL ...

http://mywebsite.com/Test123/This_&_That
Run Code Online (Sandbox Code Playgroud)

这是我如何设置我的全部路线(我有其他路线来捕捉特定页面)......

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

我在web.config文件中添加了以下内容...

<configuration>
    <system.web>
        <pages validateRequest="false" />
        <httpRuntime requestValidationMode="2.0" />
    </system.web>
<configuration>
Run Code Online (Sandbox Code Playgroud)

我还在应该捕获URL的操作中添加了ValidateInput属性...

public class WebsiteController : Controller
{
    [ValidateInput(false)]
    public ActionResult Home()
    {
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

但我仍然得到错误.有什么想法吗?我错过了什么?现在我只是在我的本地开发服务器上运行(我还没有在生产中尝试过这些修复).

asp.net-mvc asp.net-mvc-3

113
推荐指数
2
解决办法
18万
查看次数

URL路由,图像处理程序和"潜在危险的Request.Path值"

我已经在很长一段时间内遇到过这个问题,并且已经决定尝试通过在这里发布问题来一劳永逸地找到它的底部.我在这里的.net 4网站上有一个图像处理程序:

https://www.amadeupurl.co.uk/ImageHandler.ashx?i=3604 (为隐私而删除了实际域名)

现在这个工作正常,并且没有问题地从Web服务器提供图像,我说没有问题,因为如果我访问URL它工作正常,图像加载,没有生成异常.但是,昨天有人确实访问了这个确切的网址,并提出了以下几条例外:

Exception Generated
Error Message:
A potentially dangerous Request.Path value was detected from the client (?).
Stack Trace:
at System.Web.HttpRequest.ValidateInputIfRequiredByConfig() at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)

Technical Information:
DATE/TIME: 23/01/2013 03:50:01
PAGE: www.amadeupurl.co.uk/ImageHandler.ashx?i=3604
Run Code Online (Sandbox Code Playgroud)

我理解错误信息,这不是问题我只是不明白为什么它在这里生成,使事情变得更糟我无法复制它,就像我说我点击链接图像加载,没有例外.我正在使用URL路由并注册要忽略的处理程序,以防这导致以下代码出现问题:

routes.Ignore("{resource}.ashx")
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我会收到错误或者还有什么可以尝试.

.net vb.net asp.net web-config httphandler

41
推荐指数
1
解决办法
9万
查看次数

使用有效URL从客户端(?)检测到潜在危险的Request.Path值

我有几个星期在IIS 7.5上运行的ASP.NET MVC 4 Web应用程序,我注意到最近我遇到了很多以下错误:
System.Web.HttpException (0x80004005): A potentially dangerous Request.Path value was detected from the client (?). at System.Web.HttpRequest.ValidateInputIfRequiredByConfig() at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)

我知道当URL路径包含非法时会导致此异常字符,但奇怪的是,在我的情况下,URL是有效的.以下是URL的一个示例:www.mysite.com/myApp/bookTitle?chapter=12&page=278.

但是,当我尝试任何报告的链接时,它们工作正常,没有任何例外.

通过查看错误日志,我注意到查询字符串不显示为QUERY_STRING变量的一部分,但它与PATH_INFO变量中的其余路径一起包含,如下所示:
/myApp/bookTitle?chapter=12&page=278.所以似乎(?)不被识别为路径和查询之间的分隔符(可能是因为某种URL编码)但我不知道如何解决这个问题.

任何帮助将不胜感激.

c# urlencode .net-4.0 iis-7.5 asp.net-mvc-4

5
推荐指数
1
解决办法
1万
查看次数

Web API:从客户端检测到潜在危险的 Request.Path 值

因此,我的 ASP.NET Web API 项目中有一个端点需要接受特殊字符(例如%, <, >)来验证系统中名称的唯一性。所以对于以下路线:

[Route("~/api/case/{name}/infosys/{system}")]
Run Code Online (Sandbox Code Playgroud)

...{name}可能包含特殊字符。对于这个端点,只有一种方法可以告诉 Web API 允许特殊字符而不是给出这个错误:

HttpException (0x80004005): A potentially dangerous Request.Path value was detected from the client (%).
Run Code Online (Sandbox Code Playgroud)

注意:这是一个 Web API 项目,因此[ValidateInput(false)][AllowHtmlAttribute]装饰器不可用。此外,我不想通过修改我的 Web.config 来放松对任何其他端点的限制:

No
<httpRuntime requestValidationMode="2.0" />

...

No
<pages validateRequest="false">

...

No
<httpRuntime requestPathInvalidCharacters="&lt;,&gt;,%,&amp;,:,\,?" />
Run Code Online (Sandbox Code Playgroud)

c# url routing asp.net-web-api

5
推荐指数
1
解决办法
5629
查看次数

如何捕获“从客户端 (:) 检测到潜在危险的 Request.Path 值”以避免 Web 角色崩溃?

我在 Azure 云服务上运行的 MVC 5 Web 应用程序因未处理的异常“从客户端 (:) 检测到潜在危险的 Request.Path 值”而崩溃。

这次崩溃的原因是某些第三方(可能是恶意的)使用 url 访问了我的端点:http : //myExampleHost.com/m : 443/templates

url 中的冒号无法通过路径验证。

某些答案(从客户端 (*) 检测到潜在危险的 Request.Path 值)建议更改验证规则。然而,出于安全考虑,我们可能不想在这方面妥协。

它的理想行为是:我们捕获异常,记录它并返回一些错误消息而不会崩溃。我们应该怎么做?

一个更普遍的问题是:如何在请求命中 MVC 中的控制器之前捕获异常?

c# asp.net asp.net-mvc azure azure-cloud-services

5
推荐指数
1
解决办法
2046
查看次数

错误:有潜在危险的请求.怎么能够允许包含(&)的网址

这是我的网址 -

http://localhost:4566/PropertyMap/project/ackruti-gardenia-dahisar-&-beyond-mumbai

我得到错误 -

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息: System.Web.HttpException:从客户端(&)检测到潜在危险的Request.Path值.

堆栈跟踪:

[HttpException (0x80004005): A potentially dangerous Request.Path value was detected from the client (&).]
   System.Web.HttpRequest.ValidateInputIfRequiredByConfig() +9673044
   System.Web.ValidateRequestExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +35
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

我怎么解决呢?

c# asp.net

2
推荐指数
2
解决办法
2455
查看次数