【发布时间】:2011-08-15 06:24:31
【问题描述】:
如果我使用 PHP 在 MySQL 数据库上运行查询,如下所示:
$query="SELECT * FROM tablename";
从 SQL 注入之类的事情中保护它的最佳方法是什么?我听说过一些转义方法,但它不会在查询中留下斜杠吗?
【问题讨论】:
-
根据定义,此特定查询不受 sql 注入影响
-
“切换到PDO并使用准备好的语句而不是将字符串粘贴在一起”是一个有效的答案吗?
-
只有在有
WHERE子句时才会发生SQL 注入假设您的查询是SELECT * FROM tablename WHERE id='$_POST['id']'假设我在id 的表单字段中输入' OR '1'='1。您的 sql 查询现在将变为SELECT * FROM tablename WHERE id='' OR '1' = '1',它将始终返回所有字段。