我试图阻止XSS攻击,所以我使用html敏捷包来使我的白名单和Microsoft反跨站点脚本库来处理其余的.
现在我正在考虑编码所有html hrefs.我得到一大串可以包含href的html代码.如果您对MS库有一个URL编码,但如果您对整个URl进行编码,则无法使用它.因此在示例中,它们只是对查询字符串进行编码
UrlEncode不受信任的输入用于URL(例如查询字符串中的值)单击此处!
http://msdn.microsoft.com/en-us/library/aa973813.aspx
所以现在我的问题是我如何通过href解析并找到查询字符串.它总是只是"?" 然后查询字符串或它可以有空格并以不同的方式写入?
编辑
我不会写这个网址,而是会分享这些网址的用户.所以这就是为什么我需要一种方法来确保我获得所有查询字符串而不仅仅是有效格式的字符串.如果它可以工作无效格式我也必须抓住这些.黑客不会关心它是否是有效的格式,只要它仍然能够做到他们想要的.
我相信这是始终之后的部分?但是您可以轻松地使用Uri类:
Uri uri = new Uri("http://foo.com/page.html?query"); string query = uri.Query;
那将包括?本身.当然,您也可以获取其他位,这可能很方便.