您的建议确实不正确。
mysql_real_escape_string()不适用于动态表名;它旨在转义仅 由引号分隔的字符串数据
。它不会逃脱反引号字符。这是一个很小但至关重要的区别。
因此,我可以在其中插入一个SQL注入,我只需要使用结束反引号即可。
这就是为什么最好不要使用动态表名,或者必须使用动态表名将其与有效值列表(例如
SHOW TABLES命令中的表列表)进行比较的原因。
我也没有真正意识到这一点,并且可能重复同样的坏建议而感到内gui,直到在这里也由Shrapnel上校向我指出了。



