当前位置: 首页 > 知识库问答 >
问题:

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

盖玉石
2023-03-14

我的项目客户希望所有的应用程序都是Veracode兼容的.................................................................................

提供扫描的应用程序基本上是使用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;"

什么类型的修复程序可以应用于解决这些交叉脚本缺陷??

共有2个答案

彭礼骞
2023-03-14

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

凌琦
2023-03-14

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

首先是基础知识,如果允许在任何变量中加入<,特别是与允许加入”和'相结合,那么所有的东西都是一个线程。它们可以插入几乎任何东西。

在您的示例中,允许就足以产生问题,因为Javascript代码中已经插入了大量变量,如onmouseoveronmouseout

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

nowrap> 中的feltfarve在没有qoutes或其他内容的标记中。如果有人可以将值修改为onmouseover=dobadstuff(),您就麻烦了。如果他们把它和风格结合起来,他们甚至可以使它全屏,这样几乎任何人都可以悬停它。

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

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

 类似资料: