为什么我使用Request.Url.PathAndQuery得到这个错误?
问题描述:
由于我的讲师要求在开发我的高级项目时使用AntiXss库,因为网络资源不足,我面临使用这个库的许多困难。我的项目的一部分,我有一个上传文件功能,用户可以上传文件,上传他的文件后,他将被重定向到同一页面以查看其他信息。一切工作正常,但是当我加入AntiXss库,只有下面的行使用它,我得到这个错误为什么我使用Request.Url.PathAndQuery得到这个错误?
(HTTP 400错误 - 错误的请求)
,我不知道为什么。 有谁能告诉我为什么我得到这个错误?以及如何解决它?
C#代码:
Response.Redirect(Encoder.HtmlFormUrlEncode(Request.Url.PathAndQuery));
答
打破你的代码,看看每一个步骤:
- 采取传入的请求的URL,并提取出的路径和查询。
- 运行,通过基于表单编码器
- 重定向到该字符串
你认为基于表单的编码器将为了防止XSS攻击呢?
试试这个:
Response.Write(Encoder.HtmlFormUrlEncode("http://www.stackoverflow.com"));
什么写出来的?尝试把它放在网络浏览器中,你可能会得到400(或502)的错误。
如果您希望将用户重新发送到上一页,为什么需要使用PAthandQuery? – Sakthivel 2013-03-23 05:43:50