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

时间:2013-04-23 21:05:06

标签: c# asp.net

这是我的网址 -

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

我该如何解决?

2 个答案:

答案 0 :(得分:6)

&符号(&)在URL中具有特殊含义,用于分隔查询字符串片段部分中的元素。默认情况下禁止此用法,因为黑客通常会像这样探测,试图发现漏洞。

为了避免这种情况,您需要在路径上使用URL编码,因此&符号被编码为%26,从而形成最终的URL:

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

由于您没有指定URL的构造位置,因此我无法帮助您正确编码 - 每种语言的实现都不同。

答案 1 :(得分:5)

使用HttpUtility.UrlEncode()方法