在我的Page_Load
ASP.NET页面方法中,我有这个:
BtnUploadDocument.Attributes.Add("onclick",
String.Format("Javascript:var PopUpWin = window.open('{0}','_blank','scrollbars=yes, title=yes,toolbar=no,location=no,resizable=yes,status=no');return false;",
SQLManager.GetUploadDocumentLink(poid, pono)))
);
如何确保它不易受到XSS攻击?
答案 0 :(得分:0)
如果您遵循OWASP XSS(跨站点脚本)预防备忘单,则此处适用规则JavaScript Escape Before Inserting Untrusted Data into JavaScript Data Values。
这被定义为:
除字母数字字符外,使用\ xHH格式转义小于256的所有字符,以防止将数据值切换到脚本上下文或其他属性
因此您需要JSEncode using a function。 请注意,您应该对此进行调整以遵循OWASP建议并对所有非字母数字进行编码,否则攻击者将有办法突破并导致XSS。
您的代码将变为:
BtnUploadDocument.Attributes.Add("onclick",
String.Format("Javascript:var PopUpWin = window.open('{0}','_blank','scrollbars=yes, title=yes,toolbar=no,location=no,resizable=yes,status=no');return false;",
JSEncode.EncodeJsString(SQLManager.GetUploadDocumentLink(poid, pono))))
);