【发布时间】:2016-08-09 07:20:28
【问题描述】:
当我将SQL 字符串中的单引号替换为 2 时,在 Oracle 11g 数据库中屏蔽参数是否安全? (' => '')
类似的东西:
sql = "select * from user where name='" + input.replace("'", "''") + "'";
【问题讨论】:
-
问题一点都不清楚。请分享一些示例数据和示例,您在做什么?
当我将SQL 字符串中的单引号替换为 2 时,在 Oracle 11g 数据库中屏蔽参数是否安全? (' => '')
类似的东西:
sql = "select * from user where name='" + input.replace("'", "''") + "'";
【问题讨论】:
我相信是的!碰木头,否则我们都完蛋了。这是我在 SQL 屏蔽上看到的fullest explanation。显然,易受攻击的是 id 等,因为它们没有被封闭。但是,看在上帝的份上,请使用参数。不要那样构建你的 SQL。
【讨论】:
不知道注入,但是...有人可能会使用缺少绑定变量来减慢您的数据库,方法是使用几乎相同的一次性语句填充共享池、强制硬解析等。
【讨论】: