spa*_*mud 3 php sql mysqli code-injection prepared-statement
我正在使用预处理语句和MySQLi查询以防止注入攻击.准备好的语句是否完全不需要mysql_real_escape_string?在保护我的网站时还有什么我应该考虑的吗?
只要您正确使用准备好的陈述,他们就会.您必须确保绑定所有外部变量,而不是直接将它们放在查询中.
例如
$stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=" . $name);
Run Code Online (Sandbox Code Playgroud)
这个语句正在准备中,但它没有使用其中一种绑定方法,所以它没有用.它仍然容易受到SQL注入攻击.
要解决这个问题,请确保绑定所有内容......
$stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {
$stmt->bind_param("s", $city);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
428 次 |
| 最近记录: |