由于我的导师要求我在我的高级项目开发中使用AntiXss库,由于网络上缺乏资源,我在使用这个库时遇到了很多困难。我的项目的一部分,我有一个上传文件功能,其中用户将能够上传文件,并上传他的文件后,他将被重定向到同一页面,以看到一些其他信息。一切正常,但是当我添加AntiXss库并只使用下面一行时,我得到了这个错误
(HTTP 400 Error - Bad Request)
我不知道为什么。谁能告诉我为什么我得到这个错误?如何解决这个问题?
c#代码:Response.Redirect(Encoder.HtmlFormUrlEncode(Request.Url.PathAndQuery));
分解代码,查看每一步:
- 获取传入请求的URL,提取路径和查询。
- 通过基于表单的编码器运行
- 重定向到该字符串
你认为基于表单的编码器会做什么,以防止XSS攻击?
试试这个:
Response.Write(Encoder.HtmlFormUrlEncode("http://www.stackoverflow.com"));
写了什么?试着把它放在浏览器中,你可能会得到一个400(或502)的错误。
Request.Url。PathAndQuery
The above syntax returns `/Cambia3/Temp/Test.aspx?query=arg`
查看更多的url引用
HtmlFormUrlEncode获取字符串并编码为参数。更多信息请看这里