【发布时间】:2019-09-08 22:06:23
【问题描述】:
我不是 ColdFusion 开发人员,但我需要在一周内解决这个问题。
问题:我们的旧版应用程序通过 empid 创建视图,并使用记录的用户 ID 从视图中选择记录。
<cfset empid= session.emp_id>
那么这个变量用在cfquery as
Select columns from sometext_#empid#
这已被 Veracode 标记为 SQL 注入,并且在很多页面中都已完成,因此在所有查询中手动更改代码几乎是不可能的。
我将 #empid# 更改为 cfqueryparam,它不再被 Veracode 标记,但我读到这不是 cfqueryparam 的用途,我担心它可能会损坏
试图找到解决方案,但找不到与我的问题相近的任何东西。有什么方法可以验证cfset 标记本身的 SQL 注入,并希望 Veracode 理解不要标记此变量,或者解决此问题的正确方法是什么?
【问题讨论】:
-
可以在表名中使用查询参数吗?
-
因为 Veracode 不再看到错误的模式。查询是否运行并返回结果?
-
我用 cfqueryparam 更改了#empid# 1. 你能发布你的 cfquery 吗?您所描述的内容(即
select column from table<cfqueryparam...>)不应该起作用 - 根本 ;-)。 Cfqueryparam 仅设计用于查询参数 - 而不是表名。 2.这些sql视图到底包含什么?
标签: coldfusion adobe sql-injection cfml veracode