我们有一个插页页面会在人们离开我们的网站时发出警告。麻烦的是它需要查询字符串参数并盲目地生成页面,因此它容易受到XSS攻击。我的任务是修复它,我想做得对。
答案 0 :(得分:3)
您应该致电Server.HtmlEncode
以正确转义生成的HTML。
答案 1 :(得分:2)
是的,试试这个:
if(Uri.IsWellFormedUriString(url, UriKind.Absolute) && url.StartsWith("http"))
Response.Write(string.Format("<a href=\"{0}\">{0}</a>",
HttpUtility.HtmlEncode(url)));
答案 2 :(得分:1)
所以事情不要做;
要做的事情;
(披露:我拥有AntiXSS)
答案 3 :(得分:1)
最好的方法是完全摆脱页面,只是接受它的网站,让它像一个网站。网站链接到其他资源,这就是网络拥有超过2亿个网站而不是大约12个网站的原因。
如果做不到这一点,最好的办法是从HtmlEncoding 开始作为快速修复,然后将其替换为ID,以便将其带到不同的网站。
但实际上,那些“你要离开的ZOMG!”页面太可怕了。它们甚至比为每个所谓的“外部”链接打开新标签的网站更糟糕。