为什么我在Request.Url.PathAndQuery中收到此错误?

时间:2013-03-23 04:02:56

标签: c# asp.net antixsslibrary

由于我的导师要求我在开发高级项目时使用AntiXss库,因为网络资源不足,我在使用这个库时面临很多困难。我的项目的一部分我有一个上传文件功能,用户可以上传文件,上传他的文件后,他将被重定向到同一页面,以查看其他一些信息。一切正常,但当我添加AntiXss库并仅使用以下行时,我收到此错误

(HTTP 400错误 - 错误请求)

我不知道为什么。 有谁能告诉我为什么会收到此错误?以及如何解决它?

C#代码:

Response.Redirect(Encoder.HtmlFormUrlEncode(Request.Url.PathAndQuery));

2 个答案:

答案 0 :(得分:0)

分解你的代码并查看每一步:

  • 获取传入请求的URL,并提取路径和查询。
  • 通过基于表单的编码器
  • 运行该程序
  • 重定向到该字符串

您认为基于表单的编码器会如何防止XSS攻击?

试试这个:

Response.Write(Encoder.HtmlFormUrlEncode("http://www.stackoverflow.com"));

写出来的是什么?尝试将其放入网络浏览器中,您可能会收到400(或502)错误。

答案 1 :(得分:0)

Request.Url.PathAndQuery

The above syntax returns `/Cambia3/Temp/Test.aspx?query=arg`

有关更多网址引用,请选中this

HtmlFormUrlEncode获取字符串并编码为参数。有关详细信息,请参阅here