我目前正在尝试从XSS保护我的经典ASP应用程序。我在网上遇到了微软的AntiXSS,我想知道这是否适用于经典应用程序?
如果没有,你有什么想法我可以去消毒字符串吗?
答案 0 :(得分:14)
要清理字符串,我会对所有输出进行HTML编码,这样您就不必使用特殊字符或巨大的正则表达式来表达
Server.HTMLEncode(string)
防止跨站点脚本攻击的两个最重要的对策是:
通过How To: Prevent Cross-Site Scripting in ASP.NET(我知道我不是经典的asp,但也有类似的原则)
答案 1 :(得分:2)
当经典ASP中不存在函数时,请编写它们。
答案 2 :(得分:1)
如果您必须允许某些HTML标记(就像我在当前项目中那样),您可以使用正则表达式仅允许这些标记而不允许其他标记,如下所示:
set objRegExp = new RegExp
with objRegExp
.Pattern = "<^((b)|(i)|(em)|(strong)|(br))>.*</.*>"
.IgnoreCase = varIgnoreCase
.Global = True
end with
cleanString = objRegExp.replace(originalString, "")
答案 3 :(得分:0)
不容易 - 您需要制作一个可COM调用的包装器,安装在服务器上等等。我根本不认为它适合“经典”ASP。
答案 4 :(得分:0)
<%
Response.AddHeader "X-XSS-Protection", "1"
%>