当不使用自定义 SQL 时,Wordpress 是否具有 SQL-可注入漏洞?

Does Wordpress have SQL-injectable exploits when custom SQL is not used?

别担心,这道题不是一段代码&一道题"is it safe?"。

Sql 包含 words/commands,如 BEGINFORLOOPDECLARE 等,看起来完全不同。我还没有研究它(还)但是我的代码中没有一行 sql (我还没有检查插件但我确定 WP 插件使用 WP 函数)。


我的问题:如果我不使用SQL,我再次SQL注射安全吗?我只使用PHP、WP 函数(用于通信数据库)和许多其他与数据库无关的语言。 WP 功能安全吗?

对于熟悉 SQL 的人来说,这真的很愚蠢,并且有很多关于 SQL 注入的材料,但我找不到答案,我真的找不到。


我说的WP函数是什么意思:update_post_meta();get_user_meta();

来自 protecting queries against SQL Injection attacks:

上的 WordPress 法典
<?php $sql = $wpdb->prepare( 'query' , value_parameter[, value_parameter ... ] ); ?>

您还应该阅读数据库验证文档,以更全面地了解 SQL 在 WordPress 中转义。

不太可能进行 SQL 注入,如果您实现了您的代码 properly.But 不能 100% 保证 如果您对自己不确定,请使用标准 plugin.

没有任何一种语言或平台能够抵御任何类型的注入。也没有办法保护 code/language/platform 的任何部分免受任何类型的恶意注入。

问题是,王牌黑客总是领先一步,一旦有新的安全更新可用以确保安全,他们就已经有了该更新的 answer/hack。

请记住,SQL 注入只是恶意注入的一小部分,绝对不是黑客访问网站的唯一方式。来自表单字段和 URL 的未经过滤、未经验证的输入,用于文本区域的 php 等。有数百万种方法可以破解网站以扩展到 SQL 注入。

PHP和Wordpress相对安全,IFONLY IF

  • 您正在使用更新版本(最新可用版本)。 PHP 5.5 将于 2016 年 7 月停产,所有低成本主机仍在使用 PHP 5.2 和 PHP 5.3。这些版本不再获得安全更新,并且由于不再受支持而多年未更新。因此,在 PHP 5.2 上安装最新版本的 WordPress 就像为牢狱之灾提供牢不可破的锁,以将罪犯关在里面。

  • 您在一定程度上使用的软件,如主题和插件,已正确编码。如果您拥有像 WordPress 这样非常安全的平台,但您的主题或插件正在使用来自可能包含恶意代码的 $_GET 变量的非净化值,这真的无关紧要。

正如我所说,您永远无法阻止恶意代码注入,您只能让黑客更难入侵您的网站。确保:

  • PHP 和 WordPress(别忘了,MYSQL)是最新的

  • 在安装任何主题或插件之前,请确保没有明显的漏洞,例如未清理的数据

  • 永远不会相信网站或页面的任何输入,即使是您自己。 SANITIZE、VALIDATE 和 ESCAPE ALL 根据预期来自这些输入的数据输入。

最后但同样重要的是,您的服务提供商。它真的不在乎 WordPress 和 PHP 是否是最新的,以及 yoyu 使用的托管服务提供商是否使用了糟糕的安全系统。因此,请确保您的托管服务提供商知道他们在做什么,并且他们的安全不是问题

如果你遵循这个,你可以拥有一个相对安全的网站,一般黑客不会轻易入侵