您可以按照预先准备好的语句安全性将用户输入数据与固定数据混合使用,还是每个查询条件都必须有一个占位符?
例如:
$code = htmlspecialchars($_GET['code']); // USER INPUT DATA
$status = 'A'; // FIXED
$stmt = $connect->prepare("SELECT s_id FROM events WHERE s_code = ? AND s_status = ?") or die(mysqli_error());
$stmt->bind_param('ss', $code, $status);
$stmt->execute();
$stmt->bind_result($reference);
还是可以接受?
$code = htmlspecialchars($_GET['code']); // USER INPUT DATA
$stmt = $connect->prepare("SELECT s_id FROM events WHERE s_code = ? AND s_status = 'A'") or die(mysqli_error());
$stmt->bind_param('s', $code);
$stmt->execute();
$stmt->bind_result($reference);
两种方法都是可以接受的。显然,从代码绑定固定值不会对安全性产生影响,但是如果应用程序的各个部分(甚至不同的应用程序)对该查询使用不同的硬编码值,则可能会带来一些性能上的好处。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句