[实操]11 个强化WordPress 网站安全的.Htaccess 设定技巧(图文)

文参考资料为  WordPress Htaccess Tips And Tricks ,原作者Kevin Muldoon。

11 个强化WordPress 网站安全的.Htaccess 设定技巧

.htaccess  是一个设定档,让你可以控制该路径下的档案及资料夹,以及所有子目录。这个档案名称是由hypertext access而来,能为大多数的伺服器环境使用。

对于许多WordPress 使用者来说,他们第一次看到 .htaccess 档案应该是在自定他们网站的固定网址时。为了使用更美观的链结,而不是预设的链结格式(例如:https://www.wentong.org/sample-post/ 而不是https://www.wentong.org/?p=123 ) ,我们必须将以下程式码加入.htaccess 档案:


# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

如果.htaccess 不存在,你可以自己建立一个然后将它上传。你需要做的只有建立一个空白的文字档,将它储存为.htaccess 然后上传到网站的根目录。请确认在档案的开头有一个点,是不可漏掉的。

你也必须确认你的.htaccess档案是伺服器可写入的,WordPress才能将适当的程式码加入你的.htaccess 。WordPress.org 建议把档案权限设定为644 。

.htaccess 档案不仅用于固定网址,该档案也能强化网站安全。数以百万的WordPress 用户利用它来保护网站免于垃圾邮件发送者、黑客和其他已知的威胁。

在本文里,我会分享一些用于.htaccess 的程式码片段,可以强化你的网站安全。相信你会找到一些对你有帮助的程式码。

你可能也注意到上面固定网址的.htaccess 程式码是包覆于#BEGIN WordPress 及#END WordPress 里。WordPress 可以更新这个标签里的程式码,你必须把要新增的程式码片段放置于你的.htaccess 档案的顶部或底部(在#BEGIN WordPress 之前或#END WordPress 之后)。

请注意…

.htaccess 是WordPress 里个性倔强的档案,只要其中任何一个字符出错,档案就会出现错误。当错误发生时,它通常会影响到整个网站的运作,最重要的是你必须确保输入.htaccess 的程式码没有问题。

在开始前,备份一下你当前使用的.htaccess 档案吧!将它保存到你电脑里安全的位置。如果可以,也能在云端硬碟备份一份。

无论何时更新了你伺服器上的.htaccess 档案,记得回到网站重新整理一下,看看网站是不是还能正常运作。不要跳过这个步骤,因为确认网站运作正常是至关重要的一个步骤。如果你的网站给你一个白画面,立即回复、还原.htaccess 修改前的上个步骤。

如果你无法还原你的备份,那么将伺服器上的.htaccess 删除,然后建立一个空白的.htaccess 档案并将它上传。这将协助你使你的网站回复连线;当你的网站出现问题,这显然是最重要的一步。

 

1. 保护.htaccess

既然.htaccess 拥有你整个网站的控制权,保护它远离不相关人士就显得很重要。以下的程式码将让黑客无法存取你的.htaccess 档,只需要透过FTP 来修改.htaccess 档案(或是控制台的档案管理)。

<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

 

2. 保护WP-Config.php

另一个重要的档案是wp-config.php。这个档案里包含资料库的登入资讯,以及其他的系统设定。因此,明确的作法是禁止任何人访问它。

<files wp-config.php>
order allow,deny
deny from all
</files>

 

3. 保护/Wp-Content/

wp-content 资料夹也是WordPress 相当重要的一部分,在这个资料夹里包含了你的布景主题、外挂、上传的媒体档案(图片、影片)及快取档案。

有鉴于此,这通常也是黑客下手的目标。当垃圾邮件发送者试图破坏你的老网站,他必须将邮件程式传到你的上传资料夹。然后使用你的伺服器来寄送垃圾邮件;这么做会使你的伺服器被列入垃圾邮件名单。

你可以透过创建一个独立的.htaccess 档案来解决类似问题:

Order deny,allow
Deny from all
<Files ~ ".(xml|css|jpe?g|png|gif|js)$">
Allow from all
</Files>

你必须将.htaccess 档案独立上传到wp-content 主目录,例如www.yourwebsite.com/wp-content/。这么做只会允许XML、CSS、JPG、JPEG、PNG、GIF 和JavaScript 被上传到媒体资料夹,其余的档案类型将被拒绝。

 

4. 保护Include-Only 档案

某些档案是绝不用让使用者存取的。你可以加入以下程式码,来阻挡使用者存取这些档案:

# Block the include-only files.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

 

5. 限制存取WordPress 控制台

另一个黑客觊觎的目标是WordPress 控制台。如果他们获取了存取该区域的权限,他们就可以在你的网站上为所欲为。

确保WordPress 控制台更加安全,建立一个.htaccess 档案并加入以下程式码:

# Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 12.34.56.78
</Limit>

请务必将12.34.56.78更改为你的IP位址(你可以在What is My IP?找到你的IP Address),然后将它上传到网站的/wp-admin/路径下,例如www.yourwebsite.com /wp-admin/ 。

只有你能够存取WordPress 控制台,其他人将会被阻挡在外。

其他的管理员或作者的IP 可以加在后面,你可以在allow from 后面加入其他IP,不同的IP 间使用半形逗号来区隔,例如:

allow from 12.34.56.78, 98.76.54.32, 19.82.73.64

 

6. 封锁某人进入你的网站

如果你知道某个来者不善的IP 位址,你可以使用以下的程式码将它拒于网站之外。举例来说,你可以封锁某些留下垃圾留言或是尝试存取你WordPress 控制台的使用者。

<Limit GET POST>
order allow,deny
deny from 123.456.78.9
deny from 987.654.​​32.1
allow from all
</Limit>

 

7. 将使用者传送到维护页面

一些维护外挂像是  Ultimate Maintenance ModeMainteance相当实用,当你在维护网站时,可以显示一个暂时的页面给使用者,或是在你更新网站时。

不幸的是,维护外挂只有在你的网站运作正常时才起得了作用。

如果你想未雨稠缪,我建议你建立一个基本的.html 页面,将它命名为maintenance.html 来提醒使用者目前网站遭遇一些问题,但会在短时间内恢复连线。当你的网站挂掉时,只要将以下程式码加入你的.htaccess 档案,就能将所有流量引导至维护画面。

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /maintenance.html [R=302,L]

你必须要为你的网站来自定上方程式码。变更上方的档案名称,来符合你的维护页面路径,你也必须加入你的IP 位址,以便在维护状态时不会被引导至维护页面(让你可以继续调整网站),以上代码使用302 转址确保维护页面不会被搜寻引擎索引。

 

8. 禁止浏览目录

让未经授权的使用者浏览目录下的档案或资料夹是相当危险的一件事情。如要禁止访问你网站的目录,只要在你的.htaccess 加入以下程式码即可:

# disable directory browsing
Options All -Indexes

 

9. 允许浏览器快取

当启动浏览器快取功能后,将允许使用者从你的网站储存元件,而无须重新下载。

它用于设计元素,例如CSS 样式表和其它媒体内容,例如图片。这是一个实用的技巧,因为当图片上传到网站后,很少会再次更新。浏览器快取能让访客直接读取储存在他们电脑里的图片,而不用从你的伺服器下载,节省频宽、也提升了页面载入速度。

启用浏览器快取,你需要做的就是把以下程式码加入.htaccess 档案:

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>
 ## EXPIRES CACHING ##

 

10. 重新导向一个网址

301 重新导向让你可以通知搜寻引擎该链结已经重新移到新的路径。它可以被用来重新导向一个网址、资料夹,甚至是一整个网站。

因此,它常被用于网址发生变化时,例如变更网域名称、变更固定网址结构,或是变更页面名称(例如将页面名称从my-news 变成mygreatnews)。

要重新导向某个路径,你需要做的就是加入以下程式码:

Redirect 301 /oldpage.html https://www.wentong.org/newpage.html
Redirect 301 /oldfolder/page2.html /folder3/page7.html
Redirect 301 / https://www.wentong.org/

 

11. 禁止直接连结图片

直接连结的意思是某人直接取用你的图片链结,然后将它分享到其他网页上。这常发生在讨论区,但大多数的网站拥有者仍然会这么做。直接连结可能对你的网站带来负面影响,包括使你的网站变慢,也会让你的频宽费用增加。

你可以禁止除了你的网站外的网站直接连结图片,将以下程式码加入即可。请确认将以下网址更改为你的网址。

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourotherwebsite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ https://www.wentong.org/g7ptdBB.png [NC,R,L]

当其他人试图从其他网址浏览你的图片时,他们将会看到禁止图片,而这图片可以变更为任何你想要的图(在上面的最后一行设定图片路径)。

禁止直接连结可能导致一些RSS 阅读器无法显示你RSS Feed 里的图片。

希望以上的.htaccess 档案技巧对你有所助益。如你所见,它是一个可以完成许多工作的设定档。

人吐槽 人点赞

猜你喜欢

  • Nginx虚拟主机配置
  • 虚拟机系统ubuntu12.04(内网环境下的虚拟主机)开启远程连接访问
  • VMware Linux虚拟主机双路由的一种配置方式
  • linux 安装lnmp后各种存放路径
  • Linux实战教学笔记27:Nginx详细讲解
  • Apache的权限设置与构建虚拟web主机
  • phpstudy-linux
  • httpd虚拟主机、站点访问控制、基于用户的访问控制、持久链接等应用配置实例
  • 大数据技术之Linux基础
  • CentOS 7部署LAMP+xcache (php-fpm模式)
  • linux打怪升级之旅-06
  • Linux安装虚拟主机(学习)
  • WIN10 vagrant和virtualbox虚拟机和一键搭建lnmp环境配置thinkphp虚拟主机
  • 阿里云虚拟主机配置thinkphp5.0 程序 注意事项
  • 11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
  • centos系统LNMP环境配置(五)配置nginx支持php
  • phpstudy环境下安装wordpress
  • php分布式简单部署笔记之wamp2.5下的apache配置
  • Nginx服务器开箱体验
  • 初识高性能nginx
  • LNMP架构(2)Nginx安装,默认虚拟主机,Nginx用户认证,Nginx域名重定向
  • nginx多虚拟机 gzip压缩 基本配置
  • Nginx服务的虚拟主机
  • FastDFS蛋疼的集群和负载均衡(十四)之Nginx+Tomcat负载均衡
  • Nginx 反向代理 负载均衡 虚拟主机配置
  • nginx学习(一)
  • nginx ssl 107 (net::ERR_SSL_PROTOCOL_ERROR) 无法与服务器建立安全连接 解决方法
  • Nginx安装与升级 Nginx服务器 Nginx虚拟主机 、 HTTPS加密网站
  • nginx完整配置OA两面盘源码搭建例子
  • 什么是WordPress Hosting?
  • 什么是虚拟主机?(Shared Hosting)
  • 如何挑选一个适合你的虚拟主机服务?我参考的七个比较项目
  • 【推荐】WordPress101 个建立新网站的超简易捷径!杀手级WordPress 体检项目
  • [新手折腾]7 个WordPress 初学者常犯的错误(图文)
  • [经验]8 个实用的WordPress 程序代码(Code Snippets)
  • [新手折腾]安装WordPress 后你应该做的25 件事(图文)
  • [教训]9 个提升WordPress 网站安全性的方法(图文)
  • WordPress安装环境
  • 备份WordPress文件
  • 瀹氬埗Feeds
  • putty命令LNMP添加、删除虚拟主机、.user.ini、添加ssl证书开启https、伪静态使用教程(图文)
  • 范文转载:XX学校五年发展规划
  • WordPress博客换空间用插件帮忙搬家
  • 11 个强化WordPress 网站安全的.Htaccess 设定技巧
  • WordPress转换为帝国CMS完整图文教程[技术记录](图文)
  • 发表评论

    用户名: 密码:
    验证码: 匿名发表

    你可以使用这些语言

    查看评论:[实操]11 个强化WordPress 网站安全的.Htaccess 设定技巧(图文)