1

我的项目客户希望所有应用程序都与 Veracode 兼容....在将其用于 Veracode Staic Sc​​an 之后,发现有 326 个缺陷需要作为跨站点脚本错误的一部分进行修复。

给出 Scan 的应用程序基本上是使用ASP Classic (VBScript) 构建的。

报告的一些行是:

<td <%=feltfarve%> nowrap><%=tabeltekst_start%><a href="#" onclick="checkbrowser('<%=rsDBox("filid")%>','');" onmouseover=" window.status=' <%= f(18) & " " & rsDBox("filnavn")%>'; return true" onmouseout="window.status=''; return true");"><%=rsDBox("filnavn")%></a><%=tabeltekst_slut%></td>


&nbsp;<a onmouseover="EnterContent('ToolTip','<%=f(33)%>','<% if sagerRS("dkrerefnr") <> "" then     Response.Write (replace(f(34),"%1", sagerRS("dkrerefnr"))) else Response.Write(replace(f(34),"%1", f(35))) end if%>'); Activate();" onmouseout="deActivate()" href="javascript:void(0)"><img src="/secure/images/rolloverknap/gray_e.gif" border="0" WIDTH="12" HEIGHT="12"></a>

Response.Write "&nbsp;<a onmouseover=""EnterContent('ToolTip','"& f(36) &"','" & kretxt & "'); Activate();"" onmouseout=""deActivate()"" href=""javascript:void(0)""><img src=""/secure/images/rolloverknap/gray_i.gif"" border=""0"" WIDTH=""12"" HEIGHT=""12""></a>&nbsp;"

可以应用什么类型的修复来解决这些跨脚本缺陷?

4

2 回答 2

1

查看您的代码,有几个变量可能会产生问题。我不确定 Veracode 如何检查问题,但如果这些变量中的任何一个来自用户提供的值,它们就会构成风险。

首先是基础知识,如果你允许>and<在任何变量中,特别是结合allow "and ',一切都是一个线程。他们几乎可以插入任何东西。

在您的情况下,允许"并且'足以产生问题,因为很多变量已经插入到 Javascript 代码中,例如onmouseoveronmouseout

除此之外feltfarve,即使您不允许使用这些字符,也总是会导致问题。

feltfarvein<td <%=feltfarve%> nowrap>在没有 qoutes 或任何东西的标签内。如果有人可以修改onmouseover=doBadStuff()您遇到麻烦的值。如果他们将它与风格结合起来,他们甚至可以让它全屏显示,所以几乎任何人都会将它悬停。

请记住,如果您直接从数据库中插入值,%=rsDBox("filid")%>我认为在做什么,那么您必须100% 确定您在插入时正确检查了它们。

由于DB最佳实践是插入数据as provided(未编码),因此在将这些值放入HTML.

于 2015-01-28T14:42:10.410 回答
-1

我认为我们应该使用 Server.HTMLEncode 来修复 XSS(跨站点脚本)威胁。

于 2015-01-22T07:12:04.083 回答