插入准备好的语句时需要转义字符吗?对我来说,准备好的语句能逃过代码吗?
询问SO社区比使用谷歌更容易。。。
PHP Manual:
转义和SQL注入 绑定的变量与查询分开发送到服务器,因此不能干扰查询。解析语句模板后,服务器在执行时直接使用这些值。绑定参数不需要转义,因为它们从不直接替换到查询字符串中。必须向服务器提供绑定变量类型的提示,以创建适当的转换。有关详细信息,请参见mysqli_stmt_bind_param()函数。 这种分离有时被认为是防止SQL注入的唯一安全特性,但如果所有值的格式都正确,那么使用未准备好的语句也可以实现同样的安全性。应该注意的是,正确的格式与转义不同,它比简单的转义涉及更多的逻辑。因此,对于数据库安全的这一要素,准备语句只是一种更方便、更不容易出错的方法。
转义和SQL注入
绑定的变量与查询分开发送到服务器,因此不能干扰查询。解析语句模板后,服务器在执行时直接使用这些值。绑定参数不需要转义,因为它们从不直接替换到查询字符串中。必须向服务器提供绑定变量类型的提示,以创建适当的转换。有关详细信息,请参见mysqli_stmt_bind_param()函数。
这种分离有时被认为是防止SQL注入的唯一安全特性,但如果所有值的格式都正确,那么使用未准备好的语句也可以实现同样的安全性。应该注意的是,正确的格式与转义不同,它比简单的转义涉及更多的逻辑。因此,对于数据库安全的这一要素,准备语句只是一种更方便、更不容易出错的方法。
…假设你有 mysqli公司 当然