因此,即使使用 %27 对数据进行了清理,您也可以只进行 SQL 注入mysql_real_escape_string
%27) SQL INJECTION HERE %2F*
该怎么办?
编辑示例:
$sql = sprintf("SELECT *, MATCH(post) AGAINST ('%s*' IN BOOLEAN MODE) AS score FROM Posts WHERE MATCH(post) AGAINST('%s*' IN BOOLEAN MODE)",
mysql_real_escape_string($_GET['searchterm']),
mysql_real_escape_string($_GET['searchterm']));
$results = $db->queryAsArray($sql);
如果您传入%27) SQL INJECTION HERE %2F*
搜索词查询字符串,我会在页面上输出:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“BOOLEAN MODE)”附近使用正确的语法
感谢大家在 db 类中找到问题..