网页中与脚本相关的HTML标记的中和不当(基本XSS)(CWE ID 80)

时间:2014-11-12 10:06:27

标签: vbscript asp-classic veracode

My Project Client希望所有应用程序都符合Veracode标准....在为Veracode Staic Sc​​an提供后,发现有32个缺陷需要修复,作为Cross Site Scripting Error的一部分。

给出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;"

可以应用哪种类型的修复来解决这些Cross Scripting Flaws?

2 个答案:

答案 0 :(得分:1)

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

首先是基础知识,如果您在任何变量中允许><,特别是与允许"'相结合,则所有内容都是一个主题。他们几乎可以插入任何东西。

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

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

feltfarve中的{p> <td <%=feltfarve%> nowrap>位于没有qoutes或任何内容的标记内。如果有人可以将值修改为onmouseover=doBadStuff()您的麻烦。如果他们将它与风格结合起来甚至可以全屏显示,那么几乎任何人都会将其悬停。

请注意,如果您直接从数据库中插入值,我认为%=rsDBox("filid")%>正在执行的操作,那么您必须 100%确定,以便在插入时正确检查它们。< / p>

由于DB最佳做法是插入数据as provided(未编码),因此在将这些值放入HTML之前,应始终先检查这些值。

答案 1 :(得分:-1)

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