以下 Coldfusion 代码由静态代码分析器 Veracode.com 测试:
<cfloop from="1" to="3" index="kontakt_idx">
<tr class="rowclass#htmleditformat(kontakt_idx +1)#">
<td>..</td>
</tr>
</cfloop>
我得到结果:
Attack Vector: coldfusion.runtime.Cast._double
Description: This call to coldfusion.runtime.Cast._double() contains a cross-site scripting (XSS) flaw.
Veracode 不扫描 Coldfusion 代码本身。它必须使用 Adobe 提供的工具进行预编译。然而,我在 Veracode 网站上看到的结果给出了正确的行号。因此,我怀疑我被指向了错误的路线。我HTMLEditFormat()
在获得第一次扫描结果后将其放回,但错误仍然存在。
这段代码怎么会导致 XSS?一个调用怎么会coldfusion.runtime.Cast._double
导致 XSS 呢?将无效值强制转换为 double 时,Coldfusion 会引发异常。当我使用表单范围变量时,我遇到了类似的错误。在那里,在某些情况下,我可以简单地替换 Form 的使用。在另一件事上,cfloop from to
我得到了结果Attack Vector: coldfusion.runtime.Cast._int
。为什么 Veracode 有时声称有一个强制转换为 double 有时一个强制转换为 int?
我完全不确定在这种情况下我应该怎么做。当在计算中使用 Form 范围的变量时,我该怎么办 - 首先是为了保护我的应用程序,其次是为了满足 Veracode。