修复ASP.NET中的XSS漏洞

时间:2014-10-29 17:54:59

标签: asp.net security xss

在我的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攻击?

1 个答案:

答案 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))))
            );