一、Page.ResolveUrl()方法。
例如:
Page.ResolveUrl("~/test.aspx?param=http://www.test.com")会直接返回“~/test.aspx?param=http://www.test.com”。
原因:在相对URL转换为绝对URL时直接在Sering中搜索 "://" ,如果找到,就直接返回了。因此,如果你传递一个带://的参数就会直接返回原字符串。
发现:http://www.codeproject.com/Articles/53460/ResolveUrl-in-ASP-NET-The-Perfect-Solution
备注:漏洞已在.net 4.0中得到了修复,3.5以前(包括3.5)都有些漏洞。
测试截图:
二、VirtualPathUtility.IsAppRelative
例如:
VirtualPathUtility.IsAppRelative("javascript:void(0)");会引发HttpException异常,而MSDN上只有参数为Null的异常(ArgumentNullException)的异常。
原因:这里的HttpException应该就地处理,不应该向外抛。
发现:http://www.cnblogs.com/qishichang/archive/2012/07/31/2617544.html
备注:漏洞已在.net 4.0中得到了修复,3.5以前(包括3.5)都有些漏洞。
这个上面的连接排版已经很不错了,就不裁图了。