【发布时间】:2015-10-22 08:44:28
【问题描述】:
我们已扫描我们的网站是否存在漏洞。我们收到了一条关于此代码 StaticPostBackScrollVerticalPosition 的警告消息,可能是跨站点脚本。
我该如何解决这个问题?请告诉我。
private const string VerticalPosition = "StaticPostBackScrollVerticalPosition";
private const string ScriptHidden = "document.forms[0].{0}.value";
private const string SaveScriptName = "StaticPostBackScrollPositionSave";
private const string LoadScriptName = "StaticPostBackScrollPositionLoad";
private const string ScriptGetPosition = ScriptHidden + " = (navigator.appName == 'Netscape') ? window.page{1}Offset : document.documentElement.scroll{2};";
private string GetPositionScript()
{
StringBuilder sb = new StringBuilder();
sb.Append("<script language=\"JavaScript\"> \n");
sb.Append("function SaveScrollPosition() { \n");
sb.AppendFormat(ScriptGetPosition , VerticalPosition, "Y", "Top");
sb.Append("setTimeout('SaveScrollPosition()', 100);");
sb.Append("} \n");
sb.Append("SaveScrollPosition(); \n");
sb.Append("</script> \n");
return sb.ToString();
}
private void ScrollPosition()
{
if (!this.ClientScript.IsStartupScriptRegistered(SaveScriptName))
{
this.ClientScript.RegisterClientScriptBlock(GetType(), SaveScriptName, GetPositionScript());
this.ClientScript.RegisterHiddenField(VerticalPosition , "0");
}
}
【问题讨论】: