是否可以在不使用任何表格的情况下发送带有SQL注入的POST请求?假设应用程序使用使用ID参数的获取方法在数据库中检查数据库,如果我们使用邮政方法,可以完成吗?
SQL注入可以通过进行任何机制,其中用户数据直接在查询中结束。它不取决于获取和帖子,甚至不依赖于http。
您可以向OCR注入SQL。您可以用条形码注入SQL。您可以在任何人都粗心且无法正确逃脱数据时注射SQL。
这就是为什么在所有查询中使用使用占位符值准备的语句很重要的原因。
为什么获取数据的安全与邮政数据之间会有任何区别?
$sql = "SELECT * FROM products WHERE id = {$_GET['id']}";
vs。
$sql = "SELECT * FROM products WHERE id = {$_POST['id']}";
在这两种情况下,它都是不受信任的内容,并且在您的SQL查询中插入不安全。
使用查询参数。那么您就不必担心数据的来源。
$sql = "SELECT * FROM products WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute( [ $_POST['id'] ] );
使用查询参数很容易安全!