sql注入方法post

fquxozlt  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(407)

有没有可能在不使用任何表单的情况下通过sql注入发送post请求?假设一个应用程序使用带有id参数的get方法来检查数据库,如果这个id存在的话,如果我们使用post方法,可以这样做吗?

t40tm48m

t40tm48m1#

为什么get和post数据的安全性会有任何区别?

$sql = "SELECT * FROM products WHERE id = {$_GET['id']}";

与。

$sql = "SELECT * FROM products WHERE id = {$_POST['id']}";

在这两种情况下,它都是不受信任的内容,因此插入到sql查询中是不安全的。
使用查询参数。那你就不必担心数据从哪里来了。

$sql = "SELECT * FROM products WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute( [ $_POST['id'] ] );

使用查询参数既简单又安全!

iszxjhcz

iszxjhcz2#

sql注入可以通过任何机制进行,用户数据直接在查询中结束。它不依赖于get和post,甚至不依赖于http。
您可以使用ocr进行sql注入。你可以用条形码进行sql注入。只要有人不小心或者没有正确地转义数据,您就可以进行sql注入。
这就是为什么对所有查询使用带有占位符值的准备语句非常重要。

相关问题