【发布时间】:2011-08-19 15:17:52
【问题描述】:
我一直在对 SQL 注入进行一些研究,到目前为止,我所看到的只是当您将查询字符串与变量连接时,您会遇到问题。
我的问题是/是:
如果我有这个代码:
$query = "SELECT id, name, inserted, size FROM products";
$result = odbc_exec($conn, $query);
我会受到 sql 注入的影响吗?我不这么认为,但我在 stackoverflow 上发现了一个帖子,表明它是。
如果我有这个代码:
$variable = "name";
$query = "SELECT"' .$variable. ' FROM products";
$reulst = odbc_exec($conn, $query);
我还在坚持注射吗?在我看来,我完全控制了该变量,并且代码在服务器端运行,这样很安全。这是正确的吗?
提前感谢您的任何意见!
【问题讨论】:
-
没有。如果查询不包含任何用户提供的数据,则无法注入。您的第二个版本容易受到注入,但前提是您提供的数据包含易受攻击的数据。但这不是用户提供的数据,因此“很可能”是安全的。
-
请注意,您也可以使用以下语法代替
$query = "SELECT"' .$variable. ' FROM products";:$query = "SELECT '$variable' FROM products";
标签: php mysql sql sql-injection