美元引用是否足以防止恶意输入,如SQL注入?
例如:
SELECT * FROM mytable WHERE title = $secret$ hack'-- $secret$
用户输入
hack'--
不,当然不是,因为黑客可以输入包含$secret$
的字符串。
你的建议被称为"模糊安全",在安全专家中不受尊重。例如,它根本不能在开源软件上工作。
幸运的是,PostgreSQL和所有相关的api都有函数使SQL语句的安全构造变得简单。