外贸建站 网站基础设置
格外重要的英文外贸网站安全 今天我们来聊一聊网站安全这个话题。大家都知道,网站搭建起来只是最基础的要求,如何确保你的网站一直安全可靠的运行才是重中之重。这里强哥就说一下一些网站安全的常识,可能会涉及到一些专业知识! — 1 — 黑暗森林法则 什么是黑暗森林法则? 最近强哥一直在看三体小说,觉得这个特别贴切!黑暗森林法则这个概念来自刘慈欣原著小说《三体》,释义:宇宙就像是一座黑暗森林,每个文明都是带枪的猎人,像幽灵般潜行于林间,轻轻拨开树枝探索外界,同时竭力不发出脚步声隐藏行踪,因为林中到处都有与他一样潜行的猎人。如果他发现了别的生命不管是不是猎人,不管是天使还是魔鬼,能做的只有一件事:开枪消灭之,在这片森林中,他人就是地狱,永恒的威胁来源、任何暴露自己存在的生命都将很快被消灭。 其实刚开始强哥刚开始觉得世界很美好,所有的生意都是大家在同一片蓝天下公平竞争。有一次不小心将一个网站放了出来,然后,这个网站就完蛋了。在被社会毒打之后,我明白了这些道理:永远不要告诉别人你的网站。因为一个独立站没做起来的时候,搞死他太容易了,DDOS攻击,镜像,跑垃圾链接,不但提升你的运营成本,很可能分分钟就让你完蛋。咱们很多人面对这类恶搞,是真的无能为力的。 所以每次有人问我,能不能把网站给他看一下的时候,我都会笑一下不说话。这不是不给看,而是不能。所以我们要遵守黑森林法则,自己闷声发财就可以。 — 2 — 选择安全可靠的主机与服务器 这里分两种情况,拥有root权限的云主机和wordpress云主机,这两者的区别在于前者是一台裸机,啥程序都需要自己安装部署,比较适合技术大佬,后者就是主机服务商已经把一些必要的程序安装好了,用户通过他们提供的控制面板进行可视化的操作去安装部署自己需要的软件就可以,比较适合建站新手,无论选择哪种类型主机,强哥只想说一句,不要使用免费主机和劣质主机,免费主机只适合用来学习建站程序和建站方法,不要使用免费主机来托管正式上线的网站。 当然了,最好也不要使用那些特别廉价,管理经验不足的主机商的服务,不然会坑死你。在这里提一句,什么钱都能省,但是服务器这笔钱千万不能省啊,这是你开门做生意的门店,门店隔三差五关门,谁还来你店里买东西,而一台高性能的服务器可以帮你解决90%的关门问题,我见过许多这样的案例,在服务器这块的预算相当拮据,网站上线跑起来后,流量稍微大一点就各种问题接连不断的出现,所以这一块千万不能省,想想你自己去买手机也只想买高配版的手机。 这里推荐一个强哥自己在用的wordpress主机服务商,性价比比较高,如果有需要的小伙伴可以找我要个优惠码,价格更便宜,有钱的大佬可以直接无视,哈哈。 官方网址:https://chemicloud.com/wordpress-hosting/ — 3 — 服务器基础安全配置 这个地方分两种情况,一种是拥有root(超级管理员)权限的裸机,另一种是专为wordpress优化过的主机,前者防火墙端口规则需要自己配置,后者的话一般已由第三方配置好,无需自己设置。我们今天就针对第一种主机讲讲怎么进行的基础的安全配置,说白了就是给你的服务器加上一把只有你才能打得开的安全锁。首先我们登录到主机服务商的控制台,进入安全组选项,举个例子,如果你用的是亚马逊云主机,那么步骤就如下: 用户访问我们的网站都是通过80和443端口,所以我们先把这两个端口添加进入站规则,另外我们在搭建wordpress环境时有些小伙伴可能会用到第三方安装脚本,比如宝塔面板之类的,这里以强哥自己使用的OpenLiteSpeed安装脚本为例,OpenLiteSpeed的控制台需要用到8090端口,所以我们把这个端口也放开,但这里只是暂时放开,等wordpress环境搭建好,网站运行起来后强哥还是建议把它关掉。如果你平时经常要用到这个控制台来监控查看服务器的一些参数,那就把控制台的用户登录密码设置复杂点,并且定期更换密码。 最后就是22端口了,这个端口是服务器默认的SSH通信协议远程登录端口,也是最容易被黑客攻击的地方,一旦被暴力破解,你的服务器就不再是你的服务器了。这里强哥的建议是随用随开,不用时就关掉,其实大部分情况下你都用不到这个端口。以上说的这几个端口基本上都是一个网站要用到的最基础的通信端口了,如果你还有别的应用程序要开放端口,记得把它添加到防火墙入站规则中。最后设置好的防火墙规则可以参考下图: — 4 — 修改默认数据库前缀,避免被SQL注入 有一类工具叫SQL注入,黑客利用某个插件输入框的安全漏洞,通过恶意SQL语句直接修改网站数据库,删除我们的网站数据,整个网站就会直接挂掉。为什么SQL注入会有效呢?是因为我们在安装wordpress程序时,程序默认使用的数据库表前缀是wp_,这就给SQL注入留下了可乘之机。所以我们在wordpress安装的过程中,修改这一步骤中的表前缀选项,可以使大量的SQL注入工具失效。 — 5 — 修改Wordpress控制台登录地址 我们的wordpress网站搭建好后,后台登陆地址默认是http://xxx.com/wp-admin,网上大量黑客程序都以它渗透目标这个时候如果我们的管理员账号信息安全性不够高的话就会很容易被黑客暴力破解,如果你的账号信息足够安全,可以抵挡住所有的暴力破解,但是这些大量的尝试登录请求会占用你大量的服务器资源,造成的你的网站速度打开变慢,如果服务器配置比较低的话甚至有可能会造成服务器宕机,严重影响正常用户的浏览体验。 想想看,这个时候如果正好有一个优质的客户在浏览你的网站,刚准备要发起询盘,结果网站打不开了,老板要是知道了估计这个月你的医疗支出费用又要增加了。所以为了自己的人生安全强哥强烈建议各位小伙伴们修改这个默认的后台登陆地址,修改方法有两种,一种是安装对应的插件,一种是修改wordpress主题代码,强哥比较推崇代码修改方式,毕竟能不安装插件就尽量不安装插件。代码修改方式如下: 登录wordpress后台,进入Appearance>Theme Editor,添加如下代码,保存即可 举个例子,如果你的域名是http://abc.com,自定义字符xyz,那么修改后的登陆地址就是https://www.abc.com/wp-login.php?safer=xyz,保存好这个登陆地址,绝不要透露给第三方无关人员,修改原来的登陆地址后,原来的登录请求和错误的登录请求都会直接跳转到我们设置的网站首页。 /* ** Login Url protection */ function login_protection(){ if($_GET['safer'] != 'xxx')header('Location: https://www.youdomain.com/'); } add_action('login_enqueue_scripts','login_protection'); — 6 — 给我们网站添加CDN 准确的来说,这项不应该划分到网站安全这个话题来,应该属于网站优化的范畴,给站点添加CDN最主要的目的其实是为了给网站提速,只不过我们常用的CDN平台可能都是国外的CloudFlare平台,而CloudFlare平台的功能实在是太强大了,一般的网络安全问题都可以解决,不需要单独再去安装网站安全插件,毕竟插件能少一个就少一个。 强哥这里只讲些常用的安全配置,至于如何把站点添加进CloudFlare平台和更高阶的选项设置,小伙伴们可以自行百度下教程,接下来的设置教程强哥假设你们都已经在cloudflare平台上添加好站点了,来,让我们往下走; 进入SSL/TLS选项,将模式设置成完全,并开启SSL/TLS建议程序,正如字面意思,使用cloudflare来加密访问者和我们服务器的之间通信数据,保证数据安全。 进入SSL/TLS选项下的边缘证书选项,设置所有请求始终使用HTTPS,开启自动HTTPS重写,这里面的设置项比较多,下面的图都是强哥自己在用的设置样例,供大家参考: 进入防火墙选项,这里可以设置更高阶的防火墙规则,免费用户只能设置5条,但对一般的用户而言合理配置基本上也够用了,在这里你可以设置只允许指定国家的流量访问你的网站,信誉度差的IP访问你的网站时开启验证码或者直接阻止请求,这里的配置项比较自由,所以强哥没法把具体的配置代码罗列出来,有需求的小伙伴们可以自行上网百度下,下面几个是强哥常用的配置样例,贴出来供小伙伴们参考下: — 7 — 禁用XMLIPC和REST-API功能 xmlrpc.php这个文件到底是干啥的呢?其实它是为了实现让用户通过客户端来管理WordPress,例如使用博客客户端Weblog Clients来发布WordPress的日志和页面。这些都是为了让用户更加方便的管理自己的站点而开发的功能,XML-RPC这个功能从WordPress3.5开始就默认开启了,而一般情况下,我们大部分wordpress用户是不会用到这个功能的,所以可以完全关闭它,不然就会成为一些黑客的攻击对象。 关闭xmlrpc也很简单,只需要在wordpress主题文件functions.php里加入一行代码:add_filter('xmlrpc_enabled', '__return_false'); 那REST_API又是什么呢?通俗点的解释就是wordpress向外提供了一个请求接口,外部程序可以很轻松的获取网站的数据,可应用于其他网站、手机 APP 或小程序等,这个功能是从WordPress 从 4.4 版本开始新增的,但对于一般的网站是没有需要的,反而会拖累网站的打开速度,而且 REST API 采用 GET 请求方式,这就为DDOS攻击提供了一个新的攻击途径,所以应尽可能的禁止掉这些不必要的功能需求,并且去掉 head 里面输出 wp-json…