回答

收藏

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

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

如果不包括在内,有人可以解释cfquerytype的cfsqltype仍然对SQL注射保护有用吗?cfsqltype和不带cfsqltype的cfqueryparam实际发生的情况。! q0 _: h. e, V) I0 J9 S
               
% }$ ]+ G2 t  p# U, d7 T+ m7 |! V    解决方案:                                                                ( q' G$ {. i! B4 A$ v7 s
                                                                要了解likley到底做什么cfsqltype,请看一下Java / JDBC& X9 h( Y9 c, r0 c
PreparedStatement类:http# P# J) p3 C% D$ w) x3 A- _
:2 ?2 G% ^8 l- `- n3 m
//download.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html; J4 c3 q& S7 m# L7 J
你会注意到各种各样的事情setInt,setDate等方法-我的理解是,cfsqltype在创建准备好的句子时,将匹配相应的方法。6 a% w& X5 j3 f" X9 I
若指定类型,则ColdFusion在将查询发送到数据库之前,需要能够将变量转换为这种类型。
0 H. P) Z& B" i省略cfsqltype它可能会调用setObject或setString。接下来的行为取决于此时使用的行为JDBC驱动程序。我已经看到了一些情况。即使你传递有效的变量,忽略类型也会导致错误。我想的是MySQL上述使用日期和日期。
+ x* U- e  v0 z7 k$ U% w' d另一件需要考虑的事情是,如果省略了一个整数字段cfsqltype,但是如果你指定了一个非整数值cfsqltype,则ColdFusion在连接到数据库并发送查询之前,可能会出现异常,但没有它,数据库服务器上的数据库连接和执行时间。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则