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

Pra*_*eep 2 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

我怎么解决呢?

Nie*_*jes 6

ampersand(&)在URL中具有特殊含义,用于分隔Query StringFragment部分中的元素.默认情况下禁止使用这种用法,因为黑客通常会像这样探测,试图发现漏洞.

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

http://localhost:4566/PropertyMap/project/ackruti-gardenia-dahisar-%26-beyond-mumbai
Run Code Online (Sandbox Code Playgroud)

由于您没有指定URL的构造位置,因此无法帮助您正确编码 - 实现因语言而异.


Jou*_*ode 5

使用该HttpUtility.UrlEncode()方法