加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

增强WordPress安全性的15个.htaccess代码片段

发布时间:2021-02-01 23:44:09 所属栏目:安全 来源:网络整理
导读:副标题#e# 以下代码由PHP站长网 52php.cn收集自互联网现在PHP站长网小编把它分享给大家,仅供参考 如果您想提高安全性并减少 wordpress 网站上的漏洞,那么拥有一个配置良好的.htaccess 文件至关重要。通常,创建自定义.htaccess 文件的主要目的是防止您的
副标题[/!--empirenews.page--]

以下代码由PHP站长网 52php.cn收集自互联网现在PHP站长网小编把它分享给大家,仅供参考

如果您想提高安全性并减少 wordpress 网站上的漏洞,那么拥有一个配置良好的.htaccess 文件至关重要。通常,创建自定义.htaccess 文件的主要目的是防止您的网站被黑客入侵,但它也是处理重定向和管理缓存相关任务的绝佳方式。

.htaccess 是 Apache Web 服务器上使用的配置文件。大多数 WordPress 站点都在 Apache 服务器上运行,尽管其中一小部分由 Nginx 提供支持。在本文中,您可以找到.htaccess 代码片段的集合,其中大部分可用于保护您的网站,而其余代码片段实现其他有用的功能。如果你是一个不喜欢触摸配置文件的人,我推荐你使用 BulletProof Security 插件,它是市场上最可靠(也可能是最老的)免费.htaccess 安全插件。

创建 WP 默认的 .htaccess

.htaccess 基于每个目录工作,这意味着每个目录都可以拥有自己的.htaccess 文件。很可能你的 WordPress 网站还没有.htaccess 文件。如果在根目录中找不到.htaccess 文件,请创建一个空文本文件并将其命名为.htaccess。下面,您可以找到 WordPress 使用的默认.htaccess。无论何时需要此代码,您都可以在 WordPress Codex 中快速查找。请注意,WP Multisite(多站点)有一个不同的.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

以# 开头的行是注释。不要编辑任何# BEGIN WordPress 和# END WordPress 之间的代码。在这些默认规则下添加自定义.htaccess 规则。有用的.htaccess 代码,你可以在本文中找到的所有代码段,然后添加到根目录的核心.htaccess 文件。

1.拒绝访问所有.htaccess 文件

下面的代码拒绝访问你 WordPress 中的所有.htaccess 文件。这样,您可以阻止别人查看你的 Web 服务器配置。

# Denies access to all .htaccess files

<Files ~ "^.*.([Hh][Tt][Aa])">

Order Allow,Deny

Deny from all

Satisfy all

</Files>

2.保护你的 WP 配置文件

wp-config.php 文件包含所有 WP 配置,包括数据库登录名和密码。您可以拒绝所有人或允许管理员访问它。如果你选择后者,去除# Allow from xx.xx.xx.xxx 前面的 # ,并插入管理员的 IP 地址来代替 xx.xx.xx.xxx。

# Protects wp-config

<Files wp-config.php>

Order Allow,Deny

# Allow from xx.xx.xx.xxx

# Allow from yy.yy.yy.yyy

Deny from all

</Files>

3.防止 XML-RPC DDoS 攻击

WordPress 默认支持 XML-RPC,这是一个使远程发布接口。然而,虽然它是一个很棒的功能,但它也是 WP 最大的安全漏洞之一,因为黑客可能利用它来进行 DDoS 攻击。如果您不想使用此功能,最好禁用它。和以前一样,你可以通过去除# Allow from xx.xx.xx.xxx 前面的 # 和添加管理员(或多个)的 IP 地址。

# Protects XML-RPC,prevents DDoS attack

<FilesMatch "^(xmlrpc.php)">

Order Deny,Allow

# Allow from xx.xx.xx.xxx

# Allow from yy.yy.yy.yyy

Deny from all

</FilesMatch>

4.保护网站后台

通过仅向管理员提供访问权限来保护网站后台也是一个好主意。在这里,不要忘记添加至少一个“允许”例外 IP,否则您根本无法访问网站后台。


如果你的宽带没有固定的 IP,请务必不要设置,否则你可能无法访问网站后台!

# Protects admin area by IP

AuthUserFile /dev/null

AuthGroupFile /dev/null

AuthName "WordPress Admin Access Control"

AuthType Basic

<LIMIT GET>

Order Deny,Allow

Deny from all

Allow from xx.xx.xx.xxx

Allow from yy.yy.yy.yyy

</LIMIT>

5.阻止目录列表

大多数 WordPress 网站不会禁用目录列表,这意味着任何人都可以浏览其文件夹和文件,包括媒体上传和插件文件。不用说,这是一个巨大的安全漏洞。下面,你可以看到典型的 WordPress 目录列表的外观。


增强WordPress安全性的15个.htaccess代码片段


幸运的是,您只需要一行代码就可以阻止此功能。此代码段将向想要访问您的目录的任何人返回 403 错误消息。

# Prevents directory listing

Options -Indexes

6.防止用户名枚举

如果启用了 WP 永久链接,则使用作者存档枚举用户名非常容易。然后,显示的用户名(包括管理员的用户名)可用于暴力攻击。将下面的代码插入.htaccess 文件以防止用户名枚举。

# Prevents username enumeration

RewriteCond %{QUERY_STRING} author=d

RewriteRule ^ /? [L,R=301]

7.阻止垃圾邮件发送者和机器人

有时你可能希望限制某些 IP 地址的访问。此代码段提供了一种简单的方法来阻止你已经知道的垃圾邮件发送者和机器人。

# Blocks spammers and bots

<Limit GET POST>

Order Allow,Deny

Deny from xx.xx.xx.xxx

Deny from yy.yy.yy.yyy

</Limit>

Allow from all

8.防止图片盗链

虽然不是安全威胁,但图片盗链仍然是一件烦人的事情。人们不仅在未经您许可的情况下使用你的图片,可能会导致你的带宽费用支出。使用这几行代码,您可以保护你的网站被盗链图片。

# Prevents image hotlinking

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourwebsite.com [NC]

RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourwebsite2.com [NC]

RewriteRule .(jpe?g?|png|gif|ico|pdf|flv|swf|gz)$ - [NC,F,L]

9.限制对插件和主题 PHP 文件的直接访问

如果有人直接调用您的插件和主题文件,无论是意外发生还是恶意攻击者,都会很危险。此代码段来自 Acunetix 网站安全公司 ; 您可以在他们的博文中阅读有关此漏洞的更多信息。

# Restricts access to PHP files from plugin and theme directories

RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude.php

RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/

RewriteRule wp-content/plugins/(.*.php)$ - [R=404,L]

RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude.php

RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/

RewriteRule wp-content/themes/(.*.php)$ - [R=404,L]

10.设置永久重定向

你可以使用.htaccess 轻松处理永久重定向。首先,你必须添加旧 URL,然后按照指向要将用户重定向到的页面的新 URL。

# Permanent redirects

Redirect 301 /oldurl1/ http://yoursite.com/newurl1

Redirect 301 /oldurl2/ http://yoursite.com/newurl2

11.将访问者发送到维护页面

如果你的网站在维护,我们希望告知访客这个事情,可以使用规则去实现。你需要一个单独的维护页面(maintenance.html 在示例中)才能使此.htaccess 规则生效。此代码将你的 WordPress 站点置于维护模式。

# Redirects to maintenance page

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{REMOTE_ADDR} !^123.456.789.000

RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]

RewriteCond %{REQUEST_URI} !.(jpe?g?|png|gif) [NC]

RewriteRule .* /maintenance.html [R=503,L]

</IfModule>

12.限制对 wp-includes 目录的所有访问

/wp-includes/文件夹包含必需的核心 WordPress 文件。没有内容、插件、主题或用户可能想要访问的任何其他内容。因此,为了加强安全性,最好限制对它的所有访问。

# Blocks all wp-includes folders and 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>

13.阻止跨站点脚本(XSS)

以下代码片段来自 WP Mix,它可以保护你的站点免受一些常见的 XSS 攻击,即脚本注入和尝试修改全局和请求变量。

# Blocks some XSS attacks

<IfModule mod_rewrite.c>

RewriteCond %{QUERY_STRING} (|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]

RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})

RewriteRule .* index.php [F,L]

</IfModule>

14.启用浏览器缓存

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读