0

我有一个使用各种数据库操作的站点,例如 SELECT、INSERT、UPDATE 和 DELETE。我正在将所有 mysqli 切换到 PHP PDO。我被告知切换到 PDO 应该有助于保护我的站点免受 SQL 注入的影响,因此应该涵盖这一点。

除了 SQL 注入之外,如果您必须选择 2 个其他安全漏洞来防范,那会是什么?

如果您可以为每个场景提供一些代码示例,我们将不胜感激。

4

2 回答 2

5

仅仅切换到 PDO 并不能神奇地使您的所有 SQL 代码安全。您仍然需要正确使用它,将动态值传递给准备好的查询。而且这仍然没有涵盖动态 SQL 查询的所有情况。参数可以代替 SQL 表达式中的常量值,但不能代替动态表名、动态列名、动态 SQL 表达式。 没有单一的解决方案可以解决所有 SQL 注入问题,即使每个解决方案本身都有自己的用处。

您可能想阅读我的演示文稿SQL Injection Myths and Fallacies,这将有助于阐明这一点。

对于其他安全故障,存在相当多类型的漏洞。感谢您寻求了解更多以设计安全网站。软件开发人员社区中的每个人都应该倡导良好的安全实践。

这里有一些很好的资源:

  • OWASP 十大项目代表了关于最关键的 Web 应用程序安全漏洞是什么的广泛共识。项目成员包括来自世界各地的各种安全专家,他们分享了他们的专业知识来制作此列表。此外,OWASP.org 站点还有许多其他资源可用于研究常见 Web 安全威胁的性质和补救措施。

  • CWE/SANS Top 25 Most Dangerous Software Errors列出了可能导致软件严重漏洞的最普遍和最严重的错误。它们通常很容易找到,也很容易被利用。它们很危险,因为它们经常允许攻击者完全接管软件、窃取数据或完全阻止软件运行。

  • 软件安全的 19 大罪过,Michael Howard 和 David LeBlanc 以及 John Viega,2005 年。

  • Chris Shiflett 的基本 PHP 安全性,2005 年。

于 2013-07-16T01:06:04.557 回答
-1

这就是使用prepared statements的要点PDO如果PDO今天开始使用,那么您不必担心其他'SQL Injection'问题,可能是XSS攻击,但这是另一个主题,与MySQL/PDO主题无关.

您应该是安全的,使用PDO无后顾之忧!

有关更多信息,请在此处查看我关于 PDO 的其他答案

于 2013-07-16T00:55:40.503 回答