【问题标题】:Which method is more secure between MySQLi and PDO [closed]MySQLi和PDO之间哪种方法更安全[关闭]
【发布时间】:2013-05-14 21:54:08
【问题描述】:

到目前为止,我发现 MySQLi 和 PDO 都是连接数据库的好方法。我需要的是两者之间哪种方法更安全。特别是对于一个为大型项目开发网站的人来说,会与大量的人互动

【问题讨论】:

  • 定义更多安全吗?您使用什么安全客观标准?
  • 两者都是积极开发并实现绑定变量。安全性并不是它们之间的重要区别因素。
  • 老实说,它们彼此一样安全,只是取决于您更喜欢哪一个……请参阅此链接; net.tutsplus.com/tutorials/php/…
  • @DrewPierce — 使用服务器端准备好的语句时很难做到这一点:)
  • 安全性由您制定,而不是您使用的语言/驱动程序。他们肯定会提供他们在安全方面的责任,但他们不能独自完成。

标签: php mysql security pdo sql-injection


【解决方案1】:

这两个库都提供 SQL 注入安全性,只要开发人员按照预期的方式使用它们(在需要时使用准备好的语句进行适当的转义/参数绑定)。

安全性没有区别。 PDO 和 Mysqli 的主要区别在于 PDO 支持各种数据库,而 mysqli 只支持 MySQL。 MySQLi 也快一点。 PDO 支持 12 种不同的驱动程序,而 MySQLi 仅支持 MySQL。

所以关于安全性没有区别,因为它们都使用 prepared statements 和转义。

【讨论】:

  • +1 执行语句是“只要开发人员按照预期的方式使用它们”。许多开发人员似乎认为将i 添加到mysql_query 会自动消除所有注入可能性。
  • 好的,谢谢罗伯特。
  • 是的,这是真的 :) 安全性总是存在“人为”因素。即使是最好的安全措施也可能因人为失误而被破坏。
  • 酷,你们知道有哪些书可以很好地涵盖这部分内容吗?我还是 php 新手...
  • 我读过书,但它们不仅仅适用于 php。它是关于一般安全性、如何处理输入、转义、消毒、验证等。www 中有很多文章可以找到最佳实践。它并不总是与应用程序的安全性有关,还与服务器配置的安全性有关。在我的应用程序中,我总是检查每一种输入,即使是用户不应该访问的输入。
猜你喜欢
  • 2014-05-17
  • 1970-01-01
  • 2012-06-23
  • 1970-01-01
  • 2015-03-20
  • 2012-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多