该手册似乎建议在数字周围使用引号足以防止 SQL 注入。
根据第5.3.1节。通用安全指南中的MySQL 5.1中参考手册:
如果应用程序生成查询(例如,
SELECT * FROM table WHERE ID=234当用户输入值时)234,则用户可以输入值234 OR 1=1以使应用程序生成查询SELECT * FROM table WHERE ID=234 OR 1=1。结果,服务器检索表中的每一行。这会暴露每一行并导致过多的服务器负载。防止此类攻击的最简单方法是在数字常量周围使用单引号:SELECT * FROM table WHERE ID='234'. 如果用户输入额外的信息,它就会成为字符串的一部分。在数字上下文中,MySQL 自动将此字符串转换为数字并从中去除任何尾随的非数字字符。
如果用户输入值,这是否意味着用户受到保护234' OR 1=1 #?(即生成查询SELECT * FROM table WHERE ID='234' OR 1=1 #')