我是PHP的新手,我即将完成一个项目,但是我需要保护我的数据库免受SQL注入。我是否需要在每次sql查询时删除斜杠,或者我只需要为sql INSERT / UPDATE语句而不是SELECT语句执行此操作?或者最好的做法是为所有事情做到这一点?
我不是在问如何防止SQL注入,我在问他什么时候使用它。
答案 0 :(得分:4)
strip_slashes()
不是你想要的。您应该使用准备/参数化查询,这些查询将数据与SQL分开,从而使其在此问题上具有内在的安全性。
答案 1 :(得分:3)
将PDO或mysqli用于准备好的陈述。
答案 2 :(得分:3)
还有很多其他方法可以使用SQL注入。如果你想要一个很好的例子,这里有一个:/*
在一个字段中,*/
在另一个字段中。介于两者之间的所有内容都将在没有参数化的情况下在MySQL4和MySQL5上发表评论。
切换到PDO / MySQLi并从驱动程序请求真正的参数化。这将迫使驱动程序首先发送没有数据的请求,并发送另一个数据包中的数据,从而强制遵守,同时解决许多令人头疼的问题。
如果尚未说服您,请尝试以下链接:http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/。
答案 3 :(得分:1)