我有一个利用各种数据库操作的站点,比如SELECT、INSERT、UPDATE和DELETE。我正在将我所有的mysqli切换到PDO。有人告诉我,切换到PDO应该有助于保护我的站点免受SQL注入的攻击,所以这一点应该包括在内。
除了SQL注入,如果你必须选择另外两个安全漏洞来防范,你会选择哪两个?
如果你能为我提供每个场景的一些代码样本,将不胜感激。
发布于 2013-07-16 09:06:05
仅仅切换到PDO并不能神奇地确保所有SQL代码的安全。您仍然需要正确使用它,将动态值传递给准备好的查询。这仍然不能涵盖动态SQL查询的所有情况。参数可以代替SQL表达式中的常量值,但不能代替动态表名、动态列名和动态SQL表达式。没有一个单一的解决方案可以解决SQL注入的所有情况,即使每个解决方案都以其自己的方式有用。
您可能会喜欢阅读我的演示文稿SQL Injection Myths and Fallacies,这将有助于阐明这一点。
对于其他安全缺陷,有相当多的广泛类型的漏洞。感谢你试图学习更多的设计安全网站的知识。软件开发人员社区中的每个人都应该成为良好安全实践的倡导者。
这里有一些很好的资源:
发布于 2013-07-16 08:55:41
这就是使用PDO和预准备语句的要点,如果你现在就开始使用PDO,那么你就不会担心其他的‘PDO注入’问题了,可能是XSS攻击,但这是另一个主题,与MySQL/PDO主题无关。
你应该是安全的,使用PDO不用担心!
有关更多信息,请查看我在PDO 上的另一个答案。
https://stackoverflow.com/questions/17666320
复制相似问题