答案 0 :(得分:2)
我认为参数化查询不依赖于准备好的查询数据库支持。数据库驱动程序本身以安全的方式传递值,如何完成取决于驱动程序本身。
数据库级PostgreSQL manual explains basics about parametrized queries。
另一方面,参数化查询简化了传递区域设置敏感数据的过程。 例如,用户输入100,00十进制,但您的服务器预期值为100.00。
答案 1 :(得分:0)
在我所知道的每个数据库引擎中,使用“prepared”(又名“参数化”或“静态”)查询可以防止SQL注入。如果将任何字符传递给参数,则无需过滤任何字符。如果您编写的SQL在代码中连接在一起而不是使用参数编写,则可能存在SQL注入的风险。您应该使用您正在使用的数据库的安全手册,它很可能会有一个关于SQL注入的部分,但只是阅读所有内容。我敢打赌,这需要一个小时的时间,并且会给你坚实的指导和信心,使你最好地遵循适用于你的数据库的做法。