WordPress安全防护攻略
个人近期做了一个WordPress站点,目前处于内测阶段,虽然公网还没部署起来,但是先在这学习整理一下安全防护的问题。
第一:及时更新WordPress
由于33%的互联网都在使用WordPress站点,免不了被不怀好意的人盯上,所以官方对安全性非常看重,有专业团队监控并修复各种安全漏洞,可能会频繁的更新补丁,所以我们一定要及时的安装更新官方发布的稳定版本。这是官方设置的第一道防线。
第二:站点部署在可靠的主机上
不要贪图便宜使用不知名公司的主机,要防火墙没防火前,一堆漏洞,没什么专业的人维护。还有不要使用免费的主机,本身服务器维护成本不低,还给你免费使用,想想都不对劲儿。如果被DDOS攻击,靠谱的主机方解决起来有实力。还可以使用CDN加速(付费),来隐藏真实IP。
第三:数据自动备份--主机镜像备份
养成不管做什么,都要有备份的好习惯,即便被黑了,核心数据还在,根就在,怕啥;最坏的事故就是网站彻底做鸡了,还没备份,那心里的噶应感觉真是简直了。
推荐的还有服务器端快照备份和景象备份
数据备份插件推荐: UpdraftPlus 200多万的安装 当前更新时间2019年3月 (备份插件恢复的话不是100%)
有个简单的方法就是 在你的主机服务器上使用快照备份或者镜像备份。
第四:垃圾评论过滤
网站经常会收到一堆垃圾评论,你看就不正经,你看着像广告,但其实可能是XSS(跨站脚本攻击),危害性不可小看
你可以使用 插件: Akismet,千百万人使用,保护自己的站点免受垃圾评论的困扰
第五:身份转换
当网站被人撸了后,应该不会闲的去告诉你,所以没事的时候可以使用技术手段定时检查一下网站的安全漏洞啥的。有不少专业工具可以扫描,Kali Linux就可以攻击WordPress,转换下身份可以自己攻击自己玩玩,又能增长知识还能提前发现安全隐患。
扫描插件推荐: WordFence 当前更新于2019年3月
第六:插件安全性
网站的漏洞可能来源于插件,所以插件尽量少装,能用代码替换用代码替换,再者安装插件的话从WordPress官方的插件中心下载,避免来源不明的插件。
第七:管理员帐号安全性要高
怎么个高法?用户名和密码多种字符串联使用,比如:用户名D2e+@6~p;8[I 密码 k8/*W&^/j6>b.0
那些黑客会利用脚本自动化访问输入用户名密码来暴力破解。如果你的网站装有流量分析或者请求监控的话你可以看看,可以看到请求者的IP和他想访问的地址,从中筛选出"嫌疑犯",当然如果你的站点访问挺多的,这确实不好筛选,如果你有什么好的方法,留言一起学习。
还可以限制登录次数,插件推荐 Login LockDown 当前更新于2016年9月
第八: 更改登录入口
在你登录的时候,你可以看到浏览器地址栏那有个地址(wp-admin),如果你没做修改的话,那是WP默认的后台地址,所以修改掉你的登录入口,可以有效防止被人发现你的后台地址。
第九:使用Https协议
如果你的电脑有什么代理软件或者监听软件,普通的传输方式可能是明文的,恶意者很容易窃取你的信息。改成https放心多了
服务器商官网都有修改https教程,如果你是WordPress站点的话,可以搜索WordPress配置SSL。
第十:关闭.php文件访问权限
WP是用php开发的,在访问你的站点的时候有可能某个链接是.php的,一旦被发现php源文件有漏洞的话,他可能就会做一些渗透。
在.htaccess文件里添加针对敏感目录的规则,禁止直接访问.php文件
<Directory "/var/www/wp-content/uploads/">
<Files *.php>
Order Allow, Deny
Deny from all
</Files>
</Directory>
第十一:数据库
在安装WP的过程中有个数据库环节,其中有数据库表前缀wp_,这是默认的,如果你使用这个,可能会被撞到使用SQL注入的形式攻击你。有备份的话还好,没备份就呵呵了。
第十二:找准目标群体
个人站点是针对国内的,所以国外的一些ip就可以直接拒绝掉了 ,而且大部分进行CC攻击的多数来源是国外,只允许国内用户访问省事多了。
拒绝非中文用户访问:这需要修改 /usr/local/nginx/conf/duimin.com.conf,正常的非中文访问的全部404错误页面。
if ( $http_accept_language ~* ^[^zh])
{ return 404; #非中文用户访问网站返回404 }
第十三:主机服务器设防
靠谱的主机服务商都包含主机安全,Web防火墙,DDos防护,安全组策略(端口开放限制)等功能。
第十四:代码防止CC刷新和DDos
主要方法有:
禁止网站代理访问
尽量将网站做成静态页面
限制连接数量
修改最大超时时间等
将以下代码复制粘贴到functions.php文件中。
//防止CC攻击
session_start(); //开启session
$timestamp = time();
$ll_nowtime = $timestamp ;
//判断session是否存在 如果存在从session取值,如果不存在进行初始化赋值
if ($_SESSION){
$ll_lasttime = $_SESSION['ll_lasttime'];
$ll_times = $_SESSION['ll_times'] + 1;
$_SESSION['ll_times'] = $ll_times;
}else{
$ll_lasttime = $ll_nowtime;
$ll_times = 1;
$_SESSION['ll_times'] = $ll_times;
$_SESSION['ll_lasttime'] = $ll_lasttime;
}
//现在时间-开始登录时间 来进行判断 如果登录频繁 跳转 否则对session进行赋值
if(($ll_nowtime - $ll_lasttime) < 3){
if ($ll_times>=5){
header("location:http://127.0.0.1");//可以换成其他链接,比如站内的404错误显示页面(千万不要用动态页面)
exit;
}
}else{
$ll_times = 0;
$_SESSION['ll_lasttime'] = $ll_nowtime;
$_SESSION['ll_times'] = $ll_times;
}
上面的location:http://127.0.0.1可以修改为用户多次刷新后你需要显示给用户的网址。这个网址建议放在三方服务商上。
WordPress安全防护攻略的更多相关文章
- WordPress搬家全攻略
零.前言 我自己有两个博客,一个是你看到的这个,专门用来写我的技术文章:另一个是我自己的心情记录博客,专门记录和技术无关的东西. 之前我的心情记录博客一直放在openshift上面,这是redhat官 ...
- Linux 服务器配置、运行、不用敲命令(新手必备!) - 宝塔全攻略建站一条龙
Linux 服务器配置.运行.不用敲命令 WordPress 建站攻略 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整 ...
- Win7系统服务优化完全攻略
前文提到Windows系统启动的原理,其中加载各项系统服务是影响系统启动时间的重要因素,之前软媒在Win7之家(http://www.win7china.com/)和Vista之家(http:// ...
- CSS Grid网格布局全攻略
CSS Grid网格布局全攻略 所有奇技淫巧都只在方寸之间. 几乎从我们踏入前端开发这个领域开始,就不停地接触不同的布局技术.从常见的浮动到表格布局,再到如今大行其道的flex布局,css布局技术一直 ...
- 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法
若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样 ...
- 微软MVP攻略 (如何成为MVP?一个SQL Server MVP的经验之谈)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 初衷 什么是微软MVP? 成为微软MVP的条件? 如何成为微软MVP? (一) 申请时间划分 (二) 前期准备 (三) ...
- Windows下LATEX排版论文攻略—CTeX、JabRef使用介绍
Windows下LATEX排版论文攻略—CTeX.JabRef使用介绍 一.工具介绍 TeX是一个很好排版工具,在学术界十分流行,特别是数学.物理学和计算机科学界. CTeX是TeX中的一个版本,指的 ...
- linux下安装apache与php;Apache+PHP+MySQL配置攻略
1.apache 在如下页面下载apache的for Linux 的源码包 http://www.apache.org/dist/httpd/; 存至/home/xx目录,xx是自建文件 ...
- 生成 PDF 全攻略【2】在已有PDF上添加内容
项目在变,需求在变,不变的永远是敲击键盘的程序员..... PDF 生成后,有时候需要在PDF上面添加一些其他的内容,比如文字,图片.... 经历几次失败的尝试,终于获取到了正确的代码书写方式. 在此 ...
随机推荐
- MYSQL批量导入数据报:[Err] 2006 - MySQL server has gone away 解决方法
使用values 后接批量数据插入,因mysql 系统参数设置导致失败(数据量过大).可通过临时修改系统参数来解决,对系统安全性无影响: set global max_allowed_packet=1 ...
- 关于line-height 行高的一些理解和技巧
大家都知道,如何设置文字垂直居中,也就是:设置line-height 和 外围盒子的高度height一致: 其实这里有个地方,是多余的,也就是height,设不设置都居中: 那么,行高是生产高度的? ...
- xgboost与gdbt的不同和优化
XGBoost是GBDT算法的一种变种,是一种常用的有监督集成学习算法:是一种 伸缩性强.便捷的可并行构建模型的Gradient Boosting算法 Xgboost和GBDT不同之处 xgboost ...
- Servlet 常用API学习(三)
Servlet常用API学习 (三) 一.HTTPServletRequest简介 Servlet API 中定义的 ServletRequest 接口类用于封装请求消息. HttpServletRe ...
- Java基础之Comparable与Comparator
Java基础之Comparable与Comparator 一.前言: Java中实现对对象的排序一般情况下主要有以下两种实现方式(万物皆对象嘛): 对象所在的类实现Comparable 接口 定义比较 ...
- JAVA 泛型中的通配符 T,E,K,V,?
前言 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型. 泛型的本质是参数化类型,也就是说所操作的数据 ...
- python小白短期基础入门
一.编程语言介绍与分类 1.什么是编程语言 编程语言本质就是人类的语言,主要用于沟通交流.我们通过编程语言与计算机进行互动交流,从而使计算机来帮助我们实现一些特定的功能和一些复杂的工作. 2.编程语言 ...
- Asp.net MVC 集成AD域认证
1.首先WebApi 应用下Web.config要配置域认证服务器节点,如下 <!--LDAP地址 用于项目AD系统账号密码验证--> <!--0:关闭域认证:1:开启域认证--&g ...
- Redis各数据结构常用命令
redis 通用API keys * 遍历所有key 一般不在生产环境中使用 redis单线程,容易阻塞其他命令执行 O(n) dbsize 计算key的总数 O(1)exists 检查key是否存在 ...
- POJ-2153Colored Sticks解题报告+欧拉回路,字典树,并查集;
传送门:http://poj.org/problem?id=2513 题意:给你许多木棍,木棍两端都有颜色,问能不能首尾相接,要求颜色相同. 参考:https://www.cnblogs.com/ku ...