如何保护您的 WordPress 不被黑?

明月可以说是见到过太多 WordPress 网站被黑的示例了,加上平时明月也会接一些 WordPress 疑难杂症的解决服务订单,所以这方面绝对是专业对口了。作为一个资深 WordPress 博客站长,谁都有被黑过的经历,都是一步步走过来的,现在的互联网上 WordPress 被黑、被篡改是比被 CC 攻击、被 DDoS 攻击还要普遍的一个现象。要明月总结最主要的原因就是不安全的使用习惯缺乏网站安全意识

今天明月就给大家说说平时我们应该如何保护我们的 WordPress 不被黑,明月一直不建议 WordPress 去使用什么安全插件之类,虽然很久之前明月也有过相关插件的推荐,但说实话这些插件的体验都非常的差,甚至有的会严重拖慢整个 WordPress 的运行效率,严重的甚至拖垮整个服务器。毕竟不少的安全插件都涉及到 WordPress 核心文件的操作,这本身也是一种安全隐患,理论上不是 WordPress 官方的插件都不可靠,这也是我至今推荐 WordPress 缓存插件只推荐 WP Super Cache 的一个主要原因。所以,今天给大家讲的都是平时我们可以轻松做到只需要保持这些为习惯即可,并不涉及太多技术层面的事儿!

保护 WordPress 的核心其实就一条,那就是权限。所有 WordPress 被黑几乎都是在权限上出了问题,如:数据库权限、WordPress 核心文件权限、WordPress 核心目录权限等等,所谓的权限其实也是 Linux 系统一个非常核心的概念,用好权限逻辑根本不需要什么其他第三方的安全插件、安全应用啥的。Linux 本身安全性已经是翘楚级别了,WordPress 被黑只有一个原因就是你没有利用好 Linux。就拿 WordPress 的配置文件wp-config.php来说,这个文件用过 WordPress 的都知道,对于 WordPress 来说非常的重要,最起码你 WordPress 网站的数据库地址、账号、密码都在这个文件里保存着的,并且还是明码哦,所以要保护我们 WordPress 首先就是把wp-config.php的权限设置为600(目的是只有文件的所有者(通常是 Web 服务器用户)才能读取和写入该文件。其他用户和组将无法访问该文件)

命令行方式设定 wp-config.php 文件权限:

chmod 600 wp-config.php

宝塔面板里操作:

记住,Linux 下永远不要把文件或者目录权限设置为777,因为 777 代表所有用户都具有对文件或目录的完全控制权限,即读、写和执行权限。这意味着:

  • 文件所有者 可以对文件或目录执行任何操作。
  • 所属组 可以对文件或目录执行任何操作。
  • 其他用户 可以对文件或目录执行任何操作。

虽然在某些情况下,例如临时授予对文件的完全访问权限时,可能需要使用 777 权限,但通常不建议使用 777 权限,因为它会带来严重的安全风险。 授予所有用户完全控制权可能会使恶意用户轻松窃取或破坏您的文件。正确的方案是:

  • 对于文件所有者需要完全控制权的文件或目录,请使用 644 权限。 这意味着所有者具有读写执行权限,而所属组和其他人只有读权限。
  • 对于所属组需要完全控制权的文件或目录,请使用 755 权限。 这意味着所有者和所属组具有读写执行权限,而其他用户只有读权限。
  • 对于其他用户不需要任何权限的文件或目录,请使用 400 权限。 这意味着只有所有者具有读权限。

在宝塔面板里 WordPress 根目录默认的读写权限就是 755,所以这就会带来另一个安全隐患那就是内部威胁隐患,也就是恶意的、被植入了后门、木马的 PHP 代码,甚至有些 PHP 代码里隐藏了可以直接篡改 WordPress 核心目录wp-adminwp-include的代码,这是很多 WordPress 被黑最常见的手法,解决起来其实很简单,就是不要随意上传、启用来路不明的插件、主题,尤其是所谓的免费破解版之类的,甚至连 WordPress 官方插件库里插件、主题都不保证一定没有恶意代码。这也是为啥明月一直强调 WordPress 慎用插件和主题的原因。

这里奉劝大家不要奢望你可以找出这些恶意代码,这不仅仅需要你有很强的代码阅读理解能力,还需要大量的时间精力,有这本事和功夫,你完全可以自己写个插件了都。 

所以,这里明月的习惯是不定期的检查一下 WordPress 核心目录文件是否被篡改、是否有多余的文件,可惜的是宝塔面板里没有提供免费的方法,付费的明月也没有用过,反正明月都是直接命令行解决,在宝塔面板里大家完全可以借助【终端】里运行如下的命令即可:

diff -r /path/wordpress /path/www.imydl.com | diffstat

执行上述命令需要提前下载好 WordPress 最新版压缩包并解压到指定目录/path/wordpress,然后通过diff命令比较你的站点目录/path/www.imydl.com的 WordPress 核心文件目录是否有变更,最后的diffstat命令是根据diff的比较结果,显示统计数字。 diffstat读取diff的输出结果,然后统计各文件的插入,删除,修改等差异计量。Linux 默认是没有安装diffstat命令的,大家手动在【终端】里安装即可:

下载 WordPress 最新压缩包并解压:

wget https://wordpress.org/latest.zip

解压缩:

unzip latest.zip

注意,出于安全考虑这个 WordPress 最新压缩包一定要放到 Web 端无法请求的目录里,并记录好绝对地址

CentOS:

yum install -y diffstat

Debian 或者 Ubuntu:

apt install -y diffstat

执行结果如果发现有被更改过的文件就会显示出来具体的信息,如下图所示:

从上图我们可以看到只有admin-zh_CN.pozh_CN.po这两个无关紧要的语言包被修改过,说明我们站点用的 WordPress 是完整安全的。

我们还可以再加入一个-d 参数,来对比排查一下是否又多余的文件和目录:

diff -rd /path/wordpress /path/www.imydl.com | diffstat

如果发现了,可以直接删除掉,也说明你的 WordPress 已经被污染了,这时候就要小心了,仔细回忆一下是否安装了什么插件或者主题,找到这些停用排查吧。不过,明月的经验是直接删除最好,然后彻底的更新 WordPress,一般会缓解很多,如果不幸被篡改了 Linux 设置,那就是只能备份好数据重置系统了。

这里,明月给大家分享一个快速删除 WordPress 核心目录文件并自动下载最新 WordPress 解压的脚本:

#!/bin/bash# 定义 WordPress 安装路径
WP_PATH="$PWD"# 导航到 WordPress 安装目录
cd "$WP_PATH"# 下载最新版的 WordPress
wget https://wordpress.org/latest.zip# 解压文件
unzip latest.zip# 删除旧的 wp-admin 和 wp-includes 目录
rm -rf wp-admin
rm -rf wp-includes# 进入 wordpress 目录并删除 wp-content(如果需要)
cd wordpress
rm -rf wp-content# 复制新文件到上级目录覆盖旧文件
mv -f * ..# 删除 wordpress 目录
rm -rf wordpress# 赋予文件正确的所有权和权限
chown -R www:www "$WP_PATH"# 提示完成信息echo "WordPress 升级完成,请检查网站功能是否正常。"

保存上述代码为updatewp.sh文件,然后修改为可执行权限:

chmod +x updatewp.sh

复制updatewp.sh文件到网站根目录执行:

./updatewp.sh

显示"WordPress 升级完成,请检查网站功能是否正常。"就表明你网站的 WordPress 核心目录、文件已经被替换为 WordPress 最新版了,全程都是自动的,运行完记得删除updatewp.sh即可。放心不会影响你网站原有内容的,仅仅是自动替换了 WordPress 核心文件和目录而已,明月亲测有效的。我经常这么给代维、托管客户的 WordPress 升级更新的,比 WordPress 后台更新更加高效安全,永远不会出现各种奇葩的更新错误的。

如此养成上述的操作习惯,基本上你的 WordPress 就很难被黑,并且定期的对比一下 WordPress 核心目录和文件的完整性可以及时发现各种被黑的风险,这比你用什么安全应用扫描快捷有效多了。涉及安全方面的无小事,能不用第三发的就少用第三方的就是了。

至于 SQL 注入攻击什么的,一般只要做好上述的保护操作,就不会被恶意注入的,除非你用的某个插件或者主题里有不规范的 SQL 语句漏洞、BUG 被别人扫描到了,那就不是 WordPress 被黑的问题了,趁早删除插件或者更换主题吧!话说,用的人越多和破解版最多的主题最容易被 SQL 注入攻击,成功率好像还很大的样子!有条件还是购买正版主题为佳了,花点儿钱的事儿,不丢人!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/49960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】搜索二叉树

二叉搜索树 二叉树的博客 在之前的数据结构的文章中已经基本对二叉树有一定的了解,二叉搜索树也是一种数据结构,下面将对二叉搜索树进行讲解。 二叉搜索树的概念 二叉搜索树又称为二叉排序树,它或者是一棵空树,或者是具有下面性…

ObservableCollection新增数据前判断数据是否存在

public class MyDataModel {public int Id { get; set; }public string Name { get; set; }}public static void Main(){// 创建 ObservableCollectionObservableCollection<MyDataModel> myDataCollection new ObservableCollection<MyDataModel>{new MyDataMode…

[运维]解决Docker拉取镜像失败问题

问题描述 Docker 拉取镜像失败&#xff0c;报错如下&#xff1a; error pulling image configuration: download failed after attempts6: read tcp 192.168.10.2:55372->104.16.99.215:443: read: connection reset by peer一开始是xxx: Pulling fs layer&#xff0c;随后…

外贸SOHO如何选择企业邮箱

外贸SOHO&#xff08;Small Office Home Office&#xff09;企业正以前所未有的速度崛起&#xff0c;然而&#xff0c;要在这片竞争激烈的蓝海中立足&#xff0c;高效的全球通信能力、坚实的安全防线、成本效益的考量以及专业的品牌形象塑造&#xff0c;缺一不可。本文旨在为外…

Python图形编程-在PyGame中使用OpenGL

在PyGame中使用OpenGL 文章目录 在PyGame中使用OpenGL1、使用PyGame初始化项目2、绘制物体3、迭代动画4、利用变换矩阵5、多重转换执行6、完整示例代码PyOpenGL是Python和OpenGL API之间的标准库,而PyGame是用于在Python中制作游戏的标准库。它提供了内置的图形和音频库,在本…

webStorm 实时模板笔记

文章目录 1、单斜杠效果 2、双斜杠效果 3、控制台打印效果 1、单斜杠 /** $END$ */效果 2、双斜杠 /*** $END$* author Ikun* since $DATE$ $TIME$ */DATE date() ✔ TIME time() ✔效果 3、控制台打印 console.log("███████$EXPR_COPY$>>>>&a…

前端调试合集(包含移动端/内嵌h5)

代码内使用方法 alert/console alert和console.log作为JS最基本的调试能力&#xff0c;提供了简易版的断点 (只能断一下) 和输出 (只能输出字符串) 能力&#xff0c;可以在代码运行到预期的位置输出预期的log&#xff0c;通过对不同流程下写入alert&#xff0c;输出变量的值来…

Java笔试分享

1、设计模式&#xff08;写>3种常用的设计模式&#xff09; 设计模式是在软件工程中解决常见问题的经验性解决方案。以下是一些常用的设计模式&#xff1a; 单例模式&#xff08;Singleton&#xff09;&#xff1a; 意图&#xff1a;确保一个类只有一个实例&#xff0c;并…

从0到1,AI我来了- (1)从AI手写数字识别开始

前两篇我们我们把控制台、Python环境Anaconda 搞定了&#xff0c;接下来&#xff0c;我们快速进入主题&#xff0c;把AI 界的“Hello World” 实现一下&#xff0c;有个感觉&#xff0c;再逐步了解一些AI的概念。 1、Pytorch 安装 1) 什么是Pytorch? 一个深度学习框架&#…

通信原理-实验六:实验测验

实验六 实验测验 一&#xff1a;测验内容和要求 测试需要完成以下几个步骤&#xff1a; 配置好以下网络图&#xff1b;占总分10%&#xff08;缺少一个扣一分&#xff09;根据下面图配置好对应的IP和网关以及路由等相关配置&#xff0c;保证设备之间连通正常&#xff1b;占总…

深入探讨 Java 语言的基本数据类型、字符串与数组

Java 语言自1995年推出以来&#xff0c;凭借其坚实的面向对象编程基础和跨平台特性&#xff0c;迅速成为全球最流行的编程语言之一。Java 的设计哲学之一是提供一套简单且高效的基本数据类型&#xff0c;同时具备强大的字符串处理和数组操作能力。本文将深入探讨 Java 的基本数…

加速决策过程:企业级爬虫平台的实时数据分析

摘要 在当今数据驱动的商业环境中&#xff0c;企业如何才能在海量信息中迅速做出精准决策&#xff1f;本文将探讨企业级爬虫平台如何通过实时数据分析加速决策过程&#xff0c;实现数据到决策的无缝衔接。我们聚焦于技术如何赋能企业&#xff0c;提升数据处理效率&#xff0c;…

NSS [NSSRound#13 Basic]flask?jwt?

NSS [NSSRound#13 Basic]flask?jwt? 开题 注册一下 要admin才能拿flag 看看是如何进行身份验证的 是flask session flask-unsign --decode --cookie .eJwtzjESwyAMBMC_UKfghJCEP-MRICZp7bjK5O9xkX6L_aR9HXE-0_Y-rnik_TXTlsiXEhUXleKGGGuG1jbmogrCEmNirZ7BEB-VJbTfIi-26hQD…

leetCode15三数之和(双指针)

目录 1、题目 2、思路 3、代码 4、总结 1、题目 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&#xff0c;则认为…

MongoDB - 数组更新操作符:$、$[]、$pop、$pull、$push、$each、$sort、$slice、$position

文章目录 1. $1. 更新数组中的值2. 更新数组中的嵌入文档 2. $[]1. 更新数组中的所有元素2. 更新数组中的所有嵌入文档 3. $pop1. 删除数组的第一个元素2. 删除数组的最后一个元素 4. $pull1. 删除所有等于指定值的项2. 删除与指定条件匹配的所有项3. 从文档数组中删除项4. 从嵌…

跨棒距、公法线和齿厚对应关系分析

前面有一期讨论了下滚齿径向进刀量和齿厚的对应关系&#xff1a;《》&#xff0c;有小伙伴又问了&#xff0c;加工时是用跨棒距或者公法线去控制齿厚的&#xff0c;直接给齿厚是无法测量的&#xff0c;如果测一个值再去计算&#xff0c;有点麻烦&#xff0c;有没有他们之间的对…

多多OJ评测系统 在前端脚手架Vue-Cli中设置页面路由

目录 设置页面路由 我们把菜单上的路由改成读取路由文件 设置成export 导出路由 在刚刚的原始路由 index.ts中导入就行了 在这边引入我们的路由文件 我们之后点击菜单 我们的路由文件是这样的 但是没有跳转 写一下事件 接下来要同步路由到菜单项 自己定义监听函数 …

【Springboot starter 组件开发】限流组件 RateLimiter

【Springboot starter 组件开发】限流组件 RateLimiter 一、摘要二、基于guava实现2.1 核心依赖2.2 核心逻辑 三、基于Redis lua脚本实现3.1 核心依赖3.2 核心逻辑 一、摘要 基于guava的RateLimiter&#xff0c;实现限流基于redis lua脚本(推荐&#xff0c;准确性高)&#x…

推荐3款不可错过的实用工具

TouchPro TouchPro是一款运行于Windows系统下的时间属性修改工具&#xff0c;其主要功能是允许用户批量修改文件和文件夹的创建时间、修改时间和访问时间。该软件安装后会集成到资源管理器中&#xff0c;不占用任何系统资源&#xff0c;并支持多级目录与隐藏文件的日期属性批量…

mysql数据迁移,全量和增量

mysql是常用的数据库。数据迁移一般有2种&#xff0c;增量数据和历史数据。 假设我有2个数据库mysqlA和mysqlB。 mysqlB是新的数据库&#xff0c;mysqlA是旧的数据库。 A->B。首先我们选定一个时间为历史数据。将这部分的数据全部输入到B里。 接下来将服务切换的B库。然后…