我正在更新一个经典的 ASP 网页,该网页由我工作的公司维护的许多子站点使用。
该页面的目的是通知用户他们将离开“我们的”网站并前往另一个网站。它基本上是免责声明,但由于资源限制和时间限制,我无法将免责声明添加到我们管理的每个站点。
这是问题的症结所在。当前代码从查询字符串中提取一个变量以在新窗口中创建“继续”链接。这显然会以跨站点脚本的形式产生许多问题。
如何处理此更新以消除大多数(如果不是全部)使用 vbScript/ASP 的跨站点脚本问题。
我正在使用的代码如下。
<%@ Language = vbScript %>
<% Option Explicit %>
<%
Dim strLink
strLink = Request.QueryString("site")
strLink = Replace(strLink, "<", "<")
strLink = Replace(strLink, ">", ">")
strLink = Replace(strLink, chr(34), "")
strLink = Replace(strLink, "script", "", 1, -1, 1)
strLink = Replace(strLink, "onclick", "", 1, -1, 1)
strLink = Replace(strLink, "ondblclick", "", 1, -1, 1)
strLink = Replace(strLink, "onmousedown", "", 1, -1, 1)
strLink = Replace(strLink, "onmouseover", "", 1, -1, 1)
strLink = Replace(strLink, "onmousemove", "", 1, -1, 1)
strLink = Replace(strLink, "onmouseout", "", 1, -1, 1)
strLink = Replace(strLink, "onkeypress", "", 1, -1, 1)
strLink = Replace(strLink, "onkeydown", "", 1, -1, 1)
strLink = Replace(strLink, "onkeyup", "", 1, -1, 1)
strLink = Replace(strLink, "onfocus", "", 1, -1, 1)
strLink = Replace(strLink, "onblur", "", 1, -1, 1)
strLink = Replace(strLink, "&&", "")
strLink = Replace(strLink, "##", "")
strLink = Replace(strLink, "&#", "")
%>
<a href="<%= strLink %>">Continue</a>