回答

收藏

包括cfqueryparam的cfsqltype仍然对SQL注入保护有用吗?

技术问答 技术问答 54 人阅读 | 0 人回复 | 2023-09-12

如果不包括在内,有人可以解释cfquerytype的cfsqltype仍然对SQL注射保护有用吗?cfsqltype和不带cfsqltype的cfqueryparam实际发生的情况。" g3 t) Y2 n# H, ^2 a& q
                6 n$ d/ e' |7 u! u9 W7 l5 @6 I
    解决方案:                                                               
9 l8 }- e- q* G, \- @                                                                要了解likley到底做什么cfsqltype,请看一下Java / JDBC/ v( G% ^8 d6 U8 i0 F; P: I
PreparedStatement类:http
, K. e. d5 ^# P:
3 h9 F, U$ r* z1 L2 G/ y/ o+ V//download.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html
/ f0 F) X# R" w; s你会注意到各种各样的事情setInt,setDate等方法-我的理解是,cfsqltype在创建准备好的句子时,将匹配相应的方法。; ]9 Q6 c0 b* W+ g7 Y9 W! l4 T, p
若指定类型,则ColdFusion在将查询发送到数据库之前,需要能够将变量转换为这种类型。. \* j; o- t" s
省略cfsqltype它可能会调用setObject或setString。接下来的行为取决于此时使用的行为JDBC驱动程序。我已经看到了一些情况。即使你传递有效的变量,忽略类型也会导致错误。我想的是MySQL上述使用日期和日期。0 ^6 r0 t% E: V7 O5 Y* t; w
另一件需要考虑的事情是,如果省略了一个整数字段cfsqltype,但是如果你指定了一个非整数值cfsqltype,则ColdFusion在连接到数据库并发送查询之前,可能会出现异常,但没有它,数据库服务器上的数据库连接和执行时间。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则