有没有可能在不使用任何表单的情况下通过sql注入发送post请求?假设一个应用程序使用带有id参数的get方法来检查数据库,如果这个id存在的话,如果我们使用post方法,可以这样做吗?
zzwlnbp81#
sql注入可以通过任何机制进行,用户数据直接在查询中结束。它不依赖于get和post,甚至不依赖于http。您可以使用ocr进行sql注入。你可以用条形码进行sql注入。只要有人不小心或者没有正确地转义数据,您就可以进行sql注入。这就是为什么对所有查询使用带有占位符值的准备语句非常重要。
p5cysglq2#
为什么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'] ] );
使用查询参数既简单又安全!
2条答案
按热度按时间zzwlnbp81#
sql注入可以通过任何机制进行,用户数据直接在查询中结束。它不依赖于get和post,甚至不依赖于http。
您可以使用ocr进行sql注入。你可以用条形码进行sql注入。只要有人不小心或者没有正确地转义数据,您就可以进行sql注入。
这就是为什么对所有查询使用带有占位符值的准备语句非常重要。
p5cysglq2#
为什么get和post数据的安全性会有任何区别?
与。
在这两种情况下,它都是不受信任的内容,因此插入到sql查询中是不安全的。
使用查询参数。那你就不必担心数据从哪里来了。
使用查询参数既简单又安全!