【问题标题】:How is the PDO database APIsafeguarding your application against SQL injections?PDO 数据库 API 如何保护您的应用程序免受 SQL 注入?
【发布时间】:2014-05-12 18:38:57
【问题描述】:

人们倾向于选择 PDO 数据库 API 而不是 mysqli。您经常会发现有关 mysqli 的问题会通过诸如“忘记 mysqli,使用 PDO”之类的语句来回答。这是安全的方式'。所以我跟着,掌握这个 PDO 概念,准备语句并绑定它们等等。

但有什么大不了的?人们为什么要通过这种方式努力使用那里的数据库? 这如何保护您的应用免受 SQL 注入?

【问题讨论】:

  • 你碰巧混淆了一切。 mysql 和 mysqli ans 安全性和可用性
  • 不管怎样,它是stackoverflow.com/a/14112684/285587 和其他几个的副本
  • 谢谢。混淆是夸大其词。我真的很好奇为什么 PDO 被认为是连接 MySQL 数据库的最佳实践。
  • 作为一名程序员,您可以保护您的应用免受注入,PDO 只是让它比 mysqli 更容易。即使使用 PDO,您仍然可以将代码暴露给注入。
  • 我链接的帖子中有一个通透的解释,从“出现选择问题:mysqli还是PDO?”开始声明

标签: php database pdo mysqli connectivity


【解决方案1】:

PDO 不能防止 SQL 注入。您仍然可以在 PDO 中随意编写极其危险的可注入查询,而 PDO 不会在意。

PDO 所做的是提供工具,让您可以安全地编写查询。

但是,如果 PDO 提供了安全的锤子,请不要责怪它,然后你继续用你的前额敲入一些钉子。 PDO 完成了它的工作并提供了工具,你就是那个在你的头骨上有钉孔的人。

【讨论】:

  • 我不知道这个。好吧,所以这个问题应该重写...... PDO 提供了哪些工具来防止 SQL 注入,而 mysqli 没有提供?
  • 无。它们都支持占位符,这是首选的预防防御机制。当您不能使用占位符时,它们还具有与老式 mysql_real_escape_string() 提供的完全相同的转义机制。
  • +1 我告诉人们,PDO 可以防止 SQL 注入,就像牙刷可以防止蛀牙一样。 :)
猜你喜欢
  • 2020-05-06
  • 2021-10-23
  • 1970-01-01
  • 2010-12-24
  • 2016-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-19
相关资源
最近更新 更多