mysql_real_escape_string() 和 mysql_escape_string() 足以保证应用程序安全吗?
虽然这些函数可以增强数据保护,但不足以全面保障 Web 应用程序的所有安全
SQL 注入
LIKE SQL攻击
字符集漏洞
LIMIT 漏洞
主动防御:准备好的语句
代码示例
以下是 PHP 中 mysql_escape_string() 和准备好的语句的比较:
// Escaping Method $sql = sprintf("SELECT url FROM GrabbedURLs WHERE %s LIKE '%s%%' LIMIT %s", mysql_real_escape_string($argv[1]), mysql_real_escape_string($argv[2]), mysql_real_escape_string($argv[3])); // Prepared Statement $statement = $pdo->prepare('SELECT url FROM GrabbedURLs ' . 'WHERE ' . $column . '=? ' . 'LIMIT ' . intval($limit)); $statement->execute(array($value));
准备好的语句,虽然实施时间稍长,但可以针对恶意 SQL 查询提供卓越的保护并降低代码复杂性。
以上是`mysql_real_escape_string()` 和 `mysql_escape_string()` 是否足以保护我的 Web 应用程序免受 SQL 注入?的详细内容。更多信息请关注PHP中文网其他相关文章!