每次推荐别人做独立站的时候,我都会说独立站唯一的缺点是没有流量。
完全得靠推广。
但其实,独立站在安全方面对比亚马逊等大平台,也还是有所欠缺。
根据sucuri的报告显示, wordpress是全球黑客入侵最严重的cms平台。
相信很多人在建站的时候也会有感觉,觉得独立站不安全,容易被黑。
当然也会有很多人觉得我一个小小的独立站,又不是大麦,别人干嘛黑我。
怎么说呢,现在的黑客技术都基本已经全自动了,所以管你大站小站,先撸一遍再说。
这个时候,提高我们网站的安全性就尤其重要。
本文的主要内容有:
一、基础安全配置
二、安全插件及协议
三、安全代码
本文将以wordpress为例,为大家详细介绍提升独立站安全性的方法。
一、基础安全配置
1.用靠谱的服务器
虽然服务器安全不代表网站就安全,但是服务器不安全,网站就一定危险!
好的服务器会通过持续监管、自动备份等手段来预防和抵御攻击。
一般一个好的服务商会有以下安全服务:
持续监管网络中的各种可疑行为;
频繁及时的查看和修补安全漏洞;
自动备份数据;
自动更新wordpress;
......
所以,在建站的时候,选择一个优秀可靠的建站服务器,是保护我们网站安全的第一步。
2.选择安全的主题和插件
我们都会为我们的独立站选一个好看的主题,然后配很多的功能插件。
这也就意味着,黑客可以利用的安全漏洞基数就变大了。
一个不好的插件,可能会造成隐私的泄露或者给黑客提供多一种的攻击路径。
所以在选择主题和插件的时候,一定要选择安全性能好的、完备的主题和插件。
尽量避免安装到重复的功能,减少插件数量。
这样在一定程度上就减少了网站的风险。
具体的操作方法可以是,在安装主题和插件之前,验证它们的真实性,并进行测试。
3.及时更新主程序和插件
其实,99%的独立站被攻击,都是因为更新不及时。
wordpress是一个开源软件,会定期维护和更新。基本上每个月都会有一次。
插件们也会经常更新。
wordpress更新对网站的安全性和稳定性至关重要。
因为无论是wordpress开发团队还是第三方插件和主题的开发者,他们都会在新版本中修复bug和安全漏洞。
所以我们需要确保wordpress本身、插件和主题是最新的。
默认情况下,wordpress会自动安装次要更新。
不过主要版本,我们需要手动启动更新。
同时,插件和主题的更新,也需要我们手动完成。
4. 独特的密码和用户权限
① 独特的密码
黑客攻击最常见的方式,是识图破解你的用户名和网站密码。
这也是为什么现在很多平台我们在设置密码的时候,都会要求我们不能只使用单一的数字或字母。
就是因为越简单的用户名和密码,被破解的可能性就越高。
在wordpress中也一样,为了避免因为账号密码过于简单而被破解,我们必须设置独特的用户名和密码。
不过由于在建站的过程中,我们需要频繁的登录后台,所以在一开始,我们可以把用户名和密码设置得相对简单一点。
然后等建完之后,再更换为难一点的独特的密码。
并且在之后的运营过程中,我们可以时不时的就更换一下密码。
增加安全性。
② 独特的用户权限
通常我们一个独立站,会有几个人来管理。
这个时候,我们就需要为每一个人开通管理账户。
这样也会增加网站的风险。
解决的办法是,为每一个人分工,开通不同权限的子账户。
并尽可能的授予他们最低的权限。
常用的管理角色有:
作者(编写、管理、发布自己的文章)
编辑(编写文章,管理和发布所有人的文章)
小管理(安装插件)
主账户(配置 wordpress 或安装插件)
注意:主管理的角色只能有一个人!
5.自动注销闲置用户
自动注销闲置用户这个行为,在银行和金融网站最常见。
因为有的用户在登录账号之后就不管了,一直挂在那里。
不会点击退出登录。
这就给了坏人可乘之机。
别人可以劫持他们的会话,更改密码或者对账户进行修改。
所以自动注销闲置用户就很有必要。
为wordpress网站添加自动注销闲置用户功能的办法很简单:
安装inactive logout插件。
下载地址:https://wordpress.org/plugins/inactive-logout/
安装之后,访问设置为“非活跃登出页面配置”,然后设置非活跃时间长短(比如超过1天没有操作,即视为非活跃用户)和添加注销信息即可。
二、安全插件及协议
1.wordpress备份插件
备份,是保护独立站安全的最强大后盾。
因为假如我们的网站遭受了攻击,备份文件可以使我们迅速恢复网站。
就相当于是我们的底牌了。
备份的插件有很多,这里给大家推荐两个常用的:
① backwpup(付费)
下载量超高,在网站后台有独立的应用程序,主打快速恢复网站。
有中文版。
下载地址:https://wordpress.org/plugins/backwpup/
② updraftplus(有免费版和付费版)
支持定期备份和按需备份功能。
可以进行完整备份,并将备份文件储存在云端或者可以直接下载到电脑上。
付费版还包括网站迁移、网站克隆、数据库检索、数据库替换、多站点支持以及其他功能。
需要注意的是:
我们必须定期进行全站备份;
备份文件不能和网站放在一起,要保存在其他安全的位置;
结合网站更新频率来调整备份频率。
2.wordpress安全插件
① 安全插件的作用
安全插件可以帮助我们抵御未授权的登录以及修改文件操作。
同时,安全插件还可以扫描wordpress可执行文件(如php文件),检查这些文件是否被黑客加入其它可疑代码。
当有人登录我们的网站时,安全插件还会记录下它们的登录时间以及ip地址等信息,以邮件的形式发给我们。
② 常用的安全插件
wordfence(有免费版和付费版)
wordpress使用最广泛的安全插件。
有防火墙、安全扫描、2fa、限速、登录防爆破等功能。
下载地址:https://www.wordfence.com/
sucuri security(部分功能收费)
提供网站活动审核、文件监控、恶意软件扫描、安全通知、web应用程序防火墙(需付费)等功能。
下载地址:https://sucuri.net/
login lockdown
针对后台登录保护的插件。
可以限制登录尝试次数,防止网站因为黑客多次尝试而进入网站。
下载地址:https://wordpress.org/plugins/login-lockdown/
不过有的人会觉得插件越少,网站才越安全。
认为安装安全插件也会在一定程度上增加风险。
这个就大家自己抉择吧。
3.ssl协议
ssl是一种安全套接层协议,是web浏览器与web服务器之间安全交换信息的协议。
它提供两个基本的安全服务:鉴别与保密。
ssl协议具有三个特性,分别是:
① 保密:在握手协议中定义了会话密钥后,所有的消息都被加密;
② 鉴别:可选的客户端认证,和强制的服务器端认证;
③ 完整性:传送的消息包括消息完整性检查(使用mac)。
简单来说就是,ssl协议可以加密网站和用户浏览器之间的数据传输。
使想要窃取网站信息变得更困难。
这里给大家推荐一个非营利组织:let's encrypt
它为网站所有者提供免费的ssl证书。
获得了包括google chrome、facebook、mozilla在内的很多公司支持。
点击开始之后,该网站会有一个很详细的获取免费证书的教程。
并且还有中文版。
所以大家按提示获取即可。
此外,许多服务托管公司也可以为wordpress网站提供免费的ssl证书。
三、安全代码
1.禁用文件编辑功能
wordpress自带了一个内置的代码编辑器,用来编辑我们的主题和插件文件。
如果使用不当的话,就很容易变成安全风险口。
所以这个功能我们最好还是关闭。
关闭方法:
在wp-config.php文件中任何位置添加以下代码
define( ′disallow_file_edit′,true );
2. 禁用php文件的执行
php(hypertext preprocessor),超文本预处理器,是一种在服务器端执行的嵌入html文档的脚本语言。
默认情况下,wordpress中某些目录是可以写入的。
这样我们网站上的其他授权用户就可以轻松地将主题、插件、图片和视频上传到网站。
然而这个功能很可能会被他人滥用,比如黑客可以利用它上传后门访问文件或恶意软件到您的网站。
这些恶意文件通常被伪装成wordpress的核心文件。
它们大多是用php编写的,可以在后台运行,以盗取或者破坏我们的网站。
因此,我们需要在某些目录中禁止执行php文件。
禁用方法:
比如我们要禁用/wp-content/uploads/目录中的php文件执行。
首先需要打开记事本,然后贴入以下代码。
<files *.php>
deny from all
</files>
然后将这个记事本文件保存为.htaccess。
最后使用ftp将其上传到网站上的/wp-content/uploads/文件夹即可。
3.更改数据库前缀
数据库一般是黑客最喜欢侵入的区域,因为这里储存着网站的所有信息。
所以需要我们重点防护。
而一般的数据库都会有默认的前缀,让我们或者黑客一眼看就知道这个是数据文件。
所以我们就要改掉数据库的前缀,这样就增加了隐蔽性。
相当于把数据库藏起来了。
默认情况下,wordpress数据库中所有表单的前缀都是wp_ 。
修改办法:
① 打开位于wordpress根目录下的wp-config.php文件。
输入代码 “$table_prefix = 'wp_a123123_';”
把表前缀从wp_改成像这样的wp_a123123_。
② 进入网站数据库,修改数据库表名,执行如下sql。
rename table `wp_commentmeta` to `wp_a123123_commentmeta`;
rename table `wp_comments` to `wp_a123123_comments`;
rename table `wp_links` to `wp_a123123_links`;
rename table `wp_options` to `wp_a123123_options`;
rename table `wp_postmeta` to `wp_a123123_postmeta`;
rename table `wp_posts` to `wp_a123123_posts`;
rename table `wp_terms` to `wp_a123123_terms`;
rename table `wp_termmeta` to `wp_a123123_termmeta`;
rename table `wp_term_relationships` to `wp_a123123_term_relationships`;
rename table `wp_term_taxonomy` to `wp_a123123_term_taxonomy`;
rename table `wp_usermeta` to `wp_a123123_usermeta`;
rename table `wp_users` to `wp_a123123_users`;
③ 搜索options表中任何其他使用wp_作为前缀的字段,并替换成我们的新前缀。
select * from `wp_a123123_options` where `option_name` like '%wp_%';
④ 搜索usermeta表中任何其他使用wp_作为前缀的字段,并替换成我们的新前缀。
select * from `wp_a123123_usermeta` where `meta_key` like '%wp_%';
注意:修改之前一定要备份!!!!
4.设置密码保护
为wordpress管理和登录页面设置密码保护,可以有效阻止ddos攻击和黑客的一些别的尝试。
如何设置密码:
① 创建一个.htpasswds文件。
把这个文件上传到/public_html/目录外。
例如 home/user/.htpasswds/public_html/wp-admin/passwd/
② 创建一个.htaccess文件。
并上传到/wp-admin/目录下。
③ 在.htaccess文件中添加以下代码。
authname "admins only"
authuserfile
/home/yourdirectory/.htpasswds/public_html/wp-admin/passwd
authgroupfile /dev/null
authtype basic
require user putyourusernamehere
④ 更新用户名,更新authuserfile路径。
5.禁用目录索引和浏览
目录,是一个导览的作用。
我们可以用目录来快速的查看和浏览指定文件。
那么同样的,黑客也可以。
通过我们的目录,黑客可以查看我们的文件,复制我们的图片,还能看我们的文件有没有漏洞。
所以,我们一定要禁用目录的索引和浏览。
禁用方法:
① 使用ftp或cpanel的文件管理器连接到网站。
② 在网站的根目录中找到.htaccess文件。
在.htaccess文件的最后添加“options -indexes" 代码.
③ 保存并上传.htaccess文件到网站。
6.禁用xml-rpc
xml-rpc是工作在internet上的远程过程调用协议。
它有助于将我们的独立站与web和移动应用程序连接起来,所以在wordpress 3.5以上版本中被默认启用。
由于其本身强大的特性,所以当受到黑客攻击时,它会将黑客的攻击力放大。
也就是说,使用xml-rpc,会给我们带来好处,但是同样也会增加风险。
所以需要大家自己抉择是否使用。
如果不使用xml-rpc的话,我们需要将它的默认启用改为禁用。
更改办法:
在网站public_html目录下的.htaccess文件添加以下代码就能禁用此功能。
# block wordpress xmlrpc.php requests
<files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</files>
7.限制 mysql 连接地址
mysql,关系型数据管理系统。
大多数受管理的web主机默认情况下,都会确保mysql 数据库拒绝来自外部的人员和系统连接到本地服务器。
但一些使用专用服务器的主机,就需要我们自行设置限制mysql 连接地址。
限制方法:
将代码“bind-address = 127.0.0.1"添加到mysql my.cnf 配置文件的 [mysqld] 部分。
8.隐藏 wordpress 版本号
这个设置是用来为我们没有及时更新而保险的。
因为有些版本的wordpress,存在已知的漏洞。
这就意味着,别人一看你用的版本,就知道该用什么方法攻击你。
所以隐藏版本号,就很有必要。
隐藏办法:
在主题的functions.php 文件中,添加代码“remove_action('wp_head', 'wp_generator');" 即可。
四、总结
其实wordpress本身安全性并不低的,大家也不用太过担心。
介绍了这么多的提高网站安全性的东西,更多的是希望大家有这个意识,提高警惕。
不过,及时更新和网站备份是一定一定要做的事!
而且,所有需要登录名和密码的地方,一定要使用不同的账号密码。
还要有意识的隔一段时间就更改一次。
毕竟选品和推广就已经是让很多跨境电商人每天头疼的事了。
要是网站再崩了,那可就真的崩了。