SQL注入在今天是一种风险吗?

2022-08-30 12:59:14

我一直在阅读有关SQL注入攻击以及如何避免它们的信息,尽管我似乎永远无法使给定的“可怕”示例起作用,例如请参阅这篇文章

我在数据库中创建了一个PHP文件和一个表,传递了一个值,并试图通过do删除该表,但它不起作用。PHP自动转义,查询有错误,没有造成任何伤害。尝试复制登录“攻击”等时出现同样的问题。$_GETbob'); drop table students; --\'AND WHERE 1=1

示例代码:

<?php
$id = $_GET['id'];

$sql = "INSERT INTO Users (Username) VALUES ($id)";
echo $sql;
mysql_query($sql) or die(mysql_error());

我会通过sql.php?id=1); delete from Users; --

那么,这是否是一些过时的东西,曾经适用于PHP3之类的东西,现在即使是新手也受到保护,免受魔术报价之类的东西的影响?

我在 Ubuntu 上使用 PHP5。


答案 1

恰恰相反。魔术引号在 PHP5 中被弃用,在 PHP 5.4 中将被完全删除,因为它们给编程世界带来的混乱比它们做得更好。检查魔术引号是否处于活动状态,并在必要时严格转义任何SQL输入,仍然非常非常重要......没有理由感到难过,我们都去过那里,我不知情的屁股已经被魔术报价救了无数次:)

PHP关于魔术报价的手册解释了一切。


答案 2

不,这仍然非常相关。

XSS和CSRF也是如此。永远不要低估正确输入滤波的重要性。


推荐