首先,我知道人们想要使用存储过程,以便他们重用查询并处理转义。但是,我读过很多开发人员说mysqli_real_escape_string
不能 100% 防止 SQL 注入。有人可以提供一个例子吗?
根据我对该主题的有限知识,我会说这mysqli_real_escape_string
对于字符串总是很好,但对于数值,除非你检查数字是 int、float、double 等,否则你可能会被抓住。
编辑:我忘了添加一些关键的东西:假设字符集是 UTF8 并且 mysqli_set_charset 已被相应地调用。我见过的唯一注入依赖于少数字符集(都不是 UTF8)。