Я работаю над обновлением классической веб-страницы 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>