WordPress 最佳实践的终极 PHP 安全检查表

已发表: 2017-11-03

米尔萨德 / stock.adobe.com

您的网站安全流程可能会解决如何在服务器级别保护您的 WordPress 网站以及如何在文件级别保护您的网站。 但是您需要保护您的编程语言吗? 您需要遵循 PHP 安全最佳实践吗? PHP 需要保护吗?

是的,是的,是的。

如果您运行 WordPress 网站,但不注重保护 PHP 代码的安全,则可能容易发生重大事件。

哦,不,天啊,朋友们的 GIF

使用 PHP 开发 WordPress 网站有很多好处:

  • 对于新手来说它很容易使用,对于编程专家来说也足够灵活。
  • 它适用于所有平台(例如 Linux、Windows 等)。
  • 它对 WordPress 也非常友好。
  • 它可以提高网站速度。

也就是说,PHP 并非没有缺陷。 PHP 编程的应用程序可能面临以下风险:

  • SQL注入
  • 跨站脚本
  • 暴露的登录凭据
  • 会话劫持
  • 欺骗性表格
  • 以及其他令人讨厌的安全风险

相关:如何检查 WordPress 网站的 PHP 版本(以及升级兼容性)

显然,这并不意味着您会放弃使用 PHP 来编写 WordPress 网站的愿望。 它是一种高度可靠且灵活的语言,如果保护得当,它可以成为一个非常强大的工具,还有助于简化您的流程。

以下 PHP 安全检查表将教您所需了解的所有 PHP 安全最佳实践,以保证您的编程语言和 PHP 构建的应用程序的安全。

我们 WP Buffs 的团队帮助网站所有者、代理合作伙伴和自由职业者合作伙伴遵循 PHP 安全最佳实践。 无论您需要我们管理 1 个网站还是支持 1000 个客户站点,我们都会为您提供支持。

WordPress 的终极 PHP 安全检查表

想要确保您的 WordPress 网站免受黑客攻击吗? 然后,您需要确保用于构建它的所有工具(包括您的编程语言)都遵循安全最佳实践。 特别是当它涉及 PHP 时,您需要密切注意以下几点:

  • PHP 编码最佳实践
  • 对网站后端的访问限制
  • 用户帐户管理和监控
  • 数据的验证、清理和转义
  • 用户提交数据及上传监控
  • 虚拟主机可靠性

如果您想了解有关上述 PHP 安全检查点以及如何在 WordPress 开发中使用它们的更多信息,请继续阅读终极 PHP 安全检查表

PHP 最佳实践

  • 使用 PHP7 :始终使用最新版本的 PHP。 这同样适用于您使用的任何库和第三方应用程序。
  • 隐藏版本:您当前使用的 PHP 版本可以让黑客知道您的网站存在哪些类型的漏洞,因此请使用 hide_php 在标头中关闭此设置。
  • 重命名 phpinfo :有关安装的其他信息也需要隐藏,因此请务必更改 phpinfo.php 文件名。
  • 更改错误代码:更改在站点连接失败时向用户显示的默认错误消息。 这将阻止他们看到有关您的 IP 或文件路径的信息。 相反,只需在您这边记录这些错误即可。
  • 限制系统命令:普遍的共识是不应在 PHP 中使用 shell 函数。 但是,如果必须,请不要包含用户数据。

保护后端

  • 使用 SFTP :在后端传输文件时,始终使用 SFTP。
  • 限制对目录的访问:更改 PHP 应用程序的默认目录名称。
  • 配置会话路径:如果您的站点使用共享托管,则服务器上的其他用户可能能够看到您的会话数据。 您可以通过在根目录下存储新的会话路径来停止此操作。
  • 创建单独的管理员:如果您在一台服务器上运行多个基于 PHP 的网站,请确保为每个网站使用具有完全不同的登录凭据的单独管理员。 这将防止跨站点感染。
  • 将目录设置为只读:通过将其设置为只读来保护您的可通过 Web 访问的目录。
  • 将敏感文件存储在目录之外:敏感应用程序文件(如配置文件)需要放置到不可通过 Web 访问的目录中。 然后您可以使用 PHP 脚本路由它们。

保护用户信息

  • 加密所有密码:这一点很明显,但请确保全面应用它——适用于您的密码以及所有登录用户。
  • 安全会话:通过创建复杂的会话 ID 来防止会话劫持。 您还可以向每个 URL 添加特殊标记。
  • 销毁旧会话:当某人注销或他们的访问权限发生更改时,请始终从其会话中删除 cookie 并强制使用新的会话 ID。
  • 验证新用户:始终验证新用户的身份并授予他们相应的访问权限。 如果他们尝试访问受限页面,这一点尤其重要。
  • 使用限制:应使用密码限制来阻止过多的失败登录。

验证用户的输入和输出

  • 验证和清理输入:用户(已知或未知)通过您的网站发送的任何数据、文件、URL、嵌入内容、CSS 或 HTML 都需要进行审查和清理。 这意味着只允许输入您期望收到的数据(例如用户名的用户名、电子邮件地址的电子邮件地址等)。保留“不好”的单词,例如“FROM”或“WHERE”或标点符号,例如单引号在您的雷达上,因为它们可能表明有人试图将恶意代码潜入您的网站
  • 转义输出:在将任何用户数据或文件发布到您的网站之前,请确保它们也已被转义,以防止潜在危险的字符和代码通过(例如单引号或 <script>)。
  • 限制 POST 数据:如果黑客想要使用大量数据攻击您的网站,您可以通过设置可以发送的 POST 数据量来阻止这种情况。 您还可以限制输入时间。
  • 禁用 Register_Globals :在网站表单中可以提交的信息类型绝对不应该有余地。 不幸的是,Register_globals 为黑客提供了这个机会。
  • 禁用 Magic_Quotes : Magic_quotes 本身不会损害您的网站,但使用它来转义输出数据的人可能会无意中引入漏洞。

监控上传

  • 禁用文件上传:这可能并不总是可行。 但如果您不需要从用户接收文件或数据,请删除此功能。
  • 验证上传的文件:如果您确实需要允许用户将文件上传到您的网站,则需要分析文件内容是否存在有害注入。 作为快捷方式,您可以以不同的格式重新保存文件。 如果它仍然有效,那么出现问题的可能性就较小。
  • 使用病毒扫描程序:如果您的站点接受大量上传的文件,您将需要安装病毒扫描程序。

使用安全虚拟主机

  • 使用可靠的主机:无论您为保护网站、文件、登录区域或编程语言投入了多少工作,安全性都需要从托管级别开始。 这就是为什么您必须与可靠的网络主机合作,该主机优先考虑安全性并专门为 PHP7 提供支持。
  • 获取 CDN:减少服务器级别安全威胁的另一种方法是获取内容分发网络 (CDN)。 虽然这些通常与提高全球网站的性能最相关,但 CDN 还提供了额外的保护层。
  • 获取 SSL 证书:无论您是否使用 PHP 编程,这都是最佳实践。 SSL 证书在您的服务器和访问者的浏览器之间添加了额外的加密层。

虽然上述每一点确实有效,但这一点值得强调,因为您所依赖的网络托管的质量最终可能决定或破坏您网站的安全策略。

由于通常很难辨别出好坏,尤其是在寻找像 PHP7 支持这样具体的东西时,我们建议您从 WP Engine 和 Kinsta 等网络主机开始。

相关:通过 WP Engine 和 Kinsta 完全托管 WordPress

WP Engine 是一个托管 WordPress 托管提供商,其每个托管计划中都包含 PHP7 支持。 此外,WP Engine 定期在其博客上处理 PHP7 主题,并对其 PHP 兼容性检查器插件进行特别宣传。 说这家公司致力于 PHP7 用户支持是轻描淡写的。

Kinsta 是另一家托管 WordPress 托管公司,使用 PHP7 托管其所有客户网站。 这是为了确保全面的高性能和速度。 Kinsta 还为用户提供将 PHP 引擎更新到最新 PHP 版本的能力。

当然,WP Buffs 的完全托管 WordPress 托管也值得考虑。 WP Buffs 通过保持其服务器和 PHP 版本保持最新和最好的状态,始终保持领先地位,因此您永远不必担心自己管理这些升级(这是外包 WordPress 管理的乐趣之一)给别人,对吧?)

包起来

在构建 WordPress 网站时,安全始终是首要考虑的问题。 这就是为什么您使用值得信赖的插件和主题并始终保持核心更新以及其他安全最佳实践的原因。 PHP 也不例外。 像处理其他 WordPress 工具一样处理它:保持最新并始终遵守安全最佳实践,这样您(和您的网站)就可以在晚上睡得更香。

想提供反馈或加入对话吗?在 Twitter 上添加您的评论。

保存保存