我一直在研究清理用户输入的最有效方法。我的应用程序是一个简单的发布请求,用于验证用户。在线查看我可以找到十多种不同的“最佳”方法。很多这些方法都使用弃用的php函数或者看起来过于复杂。为了连接到我的sql数据库,我使用PDO类。
在搜索我自己的功能时,我偶然发现了这个:
带有绑定参数的预处理语句不仅更易于移植,更方便,不受SQL注入的影响,但执行速度通常比内插查询快得多,因为服务器端和客户端都可以缓存查询的编译形式。 / p>
我已经使用prepare方法创建我的语句。这是否意味着我可以安全地抵御SQL注入攻击?还有什么我应该担心的?
答案 0 :(得分:2)
如果您通过准备好的语句将所有用户数据与PDO绑定,则应该安全注入。您放入SQL语句中的任何变量(如排序顺序)都没有绑定,是攻击的开放向量。
答案 1 :(得分:1)
@Ray已经回答了问题的第一部分。 对于第二部分,由于您正在验证您的用户,您还应该担心如何存储他们的密码,使用一些单向加密哈希来加盐。并检查是否使用原始盐从用户输入的密码再次计算哈希与数据库条目匹配。如果可能,也可以使用https进行身份验证步骤。