Php 在哪里转义字符串以防止mysql注入?
我想知道在这段代码的哪里添加$stmt->real\u escape\u string$password;为了防止mysql注入:Php 在哪里转义字符串以防止mysql注入?,php,mysql,Php,Mysql,我想知道在这段代码的哪里添加$stmt->real\u escape\u string$password;为了防止mysql注入: if ($stmt = $this->connect->prepare($sql)) { $stmt->bind_param('ss', $username, $password); $stmt->execute(); } 是在prepare语句之后,还是在prepare语句之前,因为我读到在转义之前必须先有一个connect语句,
if ($stmt = $this->connect->prepare($sql)) {
$stmt->bind_param('ss', $username, $password);
$stmt->execute();
}
是在prepare语句之后,还是在prepare语句之前,因为我读到在转义之前必须先有一个connect语句,所以我的猜测应该在prepare语句之后,对吗
关于mysql注入,我还应该知道什么呢?你不知道
准备好的语句的一部分作用是为您转义数据。因此,如果要将其绑定为param,则不需要逃避任何内容。事实上,如果你加上它,你会在奇怪的地方看到反斜杠之类的东西
唯一需要使用real_escape_字符串的时候,是将变量作为值直接插入SQL字符串中。如果有人这样做,他们可能会想再次检查他们对准备好的陈述的全部观点的理解 你没有
准备好的语句的一部分作用是为您转义数据。因此,如果要将其绑定为param,则不需要逃避任何内容。事实上,如果你加上它,你会在奇怪的地方看到反斜杠之类的东西
唯一需要使用real_escape_字符串的时候,是将变量作为值直接插入SQL字符串中。如果有人这样做,他们可能会想再次检查他们对准备好的陈述的全部观点的理解 bind param总是这样做:如果您将来自外部的数据字符串放在内部,那么在构建$sql字符串时需要转义;否则,绑定是安全的。@yes123-我不知道:所以我不需要添加那个转义语句,因为绑定将总是转义?可能的重复而不是重复;OP已经在使用准备好的语句。这个问题只是关于它的机理Pbind param总是这样做,如果您将来自外部的数据字符串放在内部,那么在构建$sql字符串时需要转义;否则,绑定是安全的。@yes123-我不知道:所以我不需要添加那个转义语句,因为绑定将总是转义?可能的重复而不是重复;OP已经在使用准备好的语句。这个问题只是关于它的机理P