在litespeed和apache上使用.htaccess对wordpress进行安全优化,全方位保护您的wordpress,让wordpress在litespeed上安全运行。修改.htaccess可以直接进入插件Litespeed Cache的工具箱,选择.htaccess进行修改。
[h2title]wordpress之.htaccess优化[/h2title]
1.开启HSTS
HSTS是什么请看这里。
修改.htacess文件(可以在lscache插件的工具箱选项中直接修改),添加如下内容:
<IfModule mod_headers.c>
Header always set Strict-Transport-Security “max-age=31536000; includeSubDomains; preload”
</IfModule>
2.内容安全策略Content Security Policy(CSP)
CSP通过将允许的内容源(如脚本,样式和图像)列入白名单,帮助缓解XSS攻击。内容安全策略可以防止浏览器加载恶意资产。
不幸的是,没有一种适合CSP的方法。在创建CSP之前,您需要评估您实际加载的资源。一旦您确定了资源的加载方式,便可以根据这些要求设置策略。
让我们分解一下。我们的CSP允许来自当前域’self’的所有资源类型。’Unsafe-inline’表示允许使用内联样式和脚本标签,’unsafe-eval’表示允许使用不安全的动态代码评估,例如JS。“ https:”和“ data:”表明仅允许通过HTTPS和数据方案加载资源。
Header set Content-Security-Policy “default-src ‘self’ (这里直接填写需要添加的网站比如cdn.jsdelivr.net www.google-analytics.com中间空格隔开) ‘unsafe-inline’ ‘unsafe-eval’ https: data:”;
3.X框架选项X-Frame-Options
此标头通过向浏览器指示不应在框架(或iframe或对象)中呈现页面,从而有助于防止点击劫持。
Header set X-Frame-Options “sameorigin”
4.X-XSS保护和X内容类型选项X-XSS-Protection and X-Content-Type-Options
X-XSS-Protection有助于缓解跨站点脚本(XSS)攻击,并且X-Content-Type-Options标头指示IE不要嗅探mime类型,从而防止与mime嗅探有关的攻击。
Header set X-XSS-Protection “1; mode=block”
Header set X-Content-Type-Options “nosniff”
5.使用HTTPOnly和Secure标志实现Cookie安全
这指示浏览器仅由服务器信任cookie,并且可以通过安全SSL通道访问cookie。将此添加到.htaccess中:
Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure;SameSite=Strict
可以通过访问securityheaders来测试HTTP安全标头
6.隐藏PHP与服务器信息
Header unset X-Powered-By
Header unset Server
[successbox title=”1-6点可以合在一起”]
<IfModule mod_headers.c>
Header always set Strict-Transport-Security “max-age=31536000; includeSubDomains; preload”
Header set Content-Security-Policy “default-src ‘self’ ‘unsafe-inline’ ‘unsafe-eval’ https: data:”;
Header set X-Frame-Options “sameorigin”
Header set X-XSS-Protection “1; mode=block”
Header set X-Content-Type-Options “nosniff”
Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure;SameSite=Strict
Header set Content-Security-Policy “default-src ‘self’ (这里直接填写需要添加的网站比如cdn.jsdelivr.net www.google-analytics.com中间空格隔开) ‘unsafe-inline’ ‘unsafe-eval’ https: data:”;
</IfModule>
[/successbox]
7.使用.htaccess设置网站图片防盗链
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomian.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?baidu.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]
也可以在litespeed后台Hotlink设置
8.自动启用https跳转
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
9.保护wp-config.php
<Files wp-config.php>
Order Allow,Deny
Allow from 你服务器的ip
Deny from all
</Files>
10.禁止或者选择性允许XML-RPC,防止DDOS
<Files xmlrpc.php>
Order Deny,Allow
# Allow from 允许ip
Deny from all
</FilesMatch>
如果需要允许特定IP访问把#去掉
11.防止用户名枚举
RewriteCond %{QUERY_STRING} author=d
RewriteRule ^ /? [L,R=301]
12.禁用PHP执行
禁用PHP执行,保护网站免受后门访问文件的侵害,创建一个.htaccess文件写入下列代码并将其上传到网站的/wp-includes/和/wp-content/uploads/目录中。
<Files *.php>
deny from all
</Files>
13.禁止网站服务器通过未经授权的访问
<files ~ “^.*\.([Hh][Tt][Aa])”>
order allow,deny
deny from all
satisfy all
</files>
14.防止安全扫描等被litespeed意外终止
使用了插件Wordfence和UpdraftPlus等,可以添加如下代码防止安全扫描被litespeed意外终止。
<IfModule Litespeed>
RewriteEngine On
RewriteRule .* – [E=noabort:1]
</IfModule>
还可以在wp-config.php添加
define(‘ALTERNATE_WP_CRON’, true);
15.保护.htaccess
<Files .htaccess>
order allow,deny
deny from all
allow from 你的服务器ip
</files>
16.限制从插件和主题目录访问WordPress PHP文件
RewriteCond %{REQUEST_URI} ^(.*)?wp-content/plugins/(.*\.php)$ [NC]
RewriteRule ^(.*)$ – [F,L]
RewriteCond %{REQUEST_URI} ^(.*)?wp-content/themes/(.*\.php)$ [NC]
RewriteRule ^(.*)$ – [F,L]
[successbox title=”1-16点汇总”]
在已有文件内容下添加
<IfModule mod_rewrite.c>
Header always set Strict-Transport-Security “max-age=31536000; includeSubDomains; preload”
Header set X-XSS-Protection 1;mode=block
Header set X-Frame-Options: SAMEORIGIN
Header set Referrer-Policy: strict-origin-when-cross-origin
Header set X-Content-Type-Options: nosniff
Header unset X-Powered-By
Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure;SameSite=Strict
Header set Content-Security-Policy “default-src ‘self’ (这里直接填写需要添加的网站比如cdn.jsdelivr.net www.google-analytics.com中间空格隔开) ‘unsafe-inline’ ‘unsafe-eval’ https: data:”;
#
rewriteCond %{HTTPS} !on
rewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
#
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomian.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?baidu.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]
RewriteCond %{QUERY_STRING} author=d
RewriteRule ^ /? [L,R=301]
#
RewriteCond %{REQUEST_URI} ^(.*)?wp-content/plugins/(.*\.php)$ [NC]
RewriteRule ^(.*)$ – [F,L]
RewriteCond %{REQUEST_URI} ^(.*)?wp-content/themes/(.*\.php)$ [NC]
RewriteRule ^(.*)$ – [F,L]
</IfModule>
<Files wp-config.php>
Order Allow,Deny
Allow from 你服务器的ip
Deny from all
</Files>
<Files xmlrpc.php>
Order Deny,Allow
# Allow from 允许ip
Deny from all
</FilesMatch>
<files ~ “^.*\.([Hh][Tt][Aa])”>
order allow,deny
deny from all
satisfy all
</files>
<IfModule Litespeed>
RewriteEngine On
RewriteRule .* – [E=noabort:1]
</IfModule>
<Files .htaccess>
order allow,deny
deny from all
allow from 你的服务器ip
</files>
[/successbox]
[h2title]wordpress之其它安全优化[/h2title]
15.5修改.htaccess和wp-config.php权限
确定不需要对这两个文件进行修改后,可以把权限修改为600(仅允许文件所有者读写)或者444(只读)。
命令为chmod 600 文件名
目录权限建议修改为 755 或者 750,所有的文件建议修改权限为 644 或者 640。
17.禁用错误报告
如果插件或主题导致错误,错误消息可能会显示您的服务器路径,黑客可能会滥用该路径。因此,最好通过将以下代码添加到wp-config.php文件中来完全禁用错误报告:
error_reporting(0);
@ini_set(‘display_errors’, 0);
18.去掉heade里的rel=”https://api.w.org/
[info]部分主题使用后http头并没有此项[/info]
将下面代码添加到主题functions.php文件中,去除head里面输出的链接信息。
//屏蔽 REST API
add_filter(‘json_enabled’, ‘__return_false’ );
add_filter(‘json_jsonp_enabled’, ‘__return_false’ );
add_filter(‘rest_enabled’, ‘__return_false’);
add_filter(‘rest_jsonp_enabled’, ‘__return_false’);
// 移除头部 wp-json 标签和 HTTP header 中的 link
remove_action(‘wp_head’, ‘rest_output_link_wp_head’, 10 );
remove_action(‘template_redirect’, ‘rest_output_link_header’, 11 );
推荐阅读:
Litespeed之一键安装litespeed企业版/PHP/Mysql
Litespeed之企业版安装wordpress并设置服务器优化
Centos/Debian/Ubuntu一键开启BBR加速开启BBR
Litespeed之简单对比-wordpress的终极解决方案