分享个自用的 Nginx 加强 WordPress 防护的规则

Nginx+ WordPress 的组合是目前非常普及的组合了,我们完全可以借助 Nginx 规则来加强 WordPress 的防护,提高 WordPress 的安全性,今天明月就给大家分享个自用的 Nginx 针对 WordPress 的防护规则,部分规则大家只需要根据自己的需要进行调整即可。

分享个自用的 Nginx 加强 WordPress 防护的规则

#隐藏 nginx 版本.
server_tokens off;
#隐藏 PHP 版本
fastcgi_hide_header X-Powered-By;
proxy_hide_header X-Powered-By;
#禁止目录列表
autoindex off;
#验证浏览器行为防 CC
#if ($cookie_say != "hbnl$remote_addr"){
#     rewrite .* "$scheme://$host$uri" redirect;#return 444;
#}
#屏蔽 IP 访问
deny 158.69.243.0/24;  # MJ12bot
deny 46.229.168.0/24;  # SemRush 
deny 54.36.148.0/24;   # AhrefsBot 
deny 54.36.149.0/24;   # AhrefsBot
#禁止 17ce.com 的测速
if ($http_referer ~* 17ce.com) { return 444; }
#禁止恶意 UA 以及为空的请求(^$)
if ($http_user_agent ~ "Go-http-client|Apache-HttpClient|lua-resty-http|loli_spider|ngx_lua"){return 444;
}
# 禁止 Scrapy 等工具的抓取
if ($http_user_agent ~* (cdnunion_monitor|python-httpx|Wget|Scrapy|HttpClient|PostmanRuntime|ApacheBench|python-requests|Python-urllib|node-fetch)) {return 499;}
#禁止一些特殊的 UA
if ($http_user_agent ~ "Mozilla/4.0\ \(compatible;\ MSIE\ 6.0;\ Windows\ NT\ 5.1;\ SV1;\ .NET\ CLR\ 1.1.4322;\ .NET\ CLR\ 2.0.50727\)") { return 444;
}
# 屏蔽恶意后缀文件访问请求
if ($document_uri ~* \.(asp|aspx|jsp|swp|git|env|yaml|yml|sql|db|bak|ini|docx|doc|rar|tar|gz|zip|log|bak|conf)$) { return 444; }#禁止直接访问任何 php 文件
location ~* /(?:uploads|files|akismet)/.*.php$ { deny all; access_log off; log_not_found off;}
# 保护 WordPress 系统文件
location = /wp-admin/install.php { deny all; }
location = /nginx.conf { deny all; }
location ~ ^/user_extention/ { deny all; }
location ~ /\.htaccess$ { deny all; }
location ~ /readme\.html$ { deny all; }
location ~ /readme\.txt$ { deny all; }
location ~ ^/wp-config.php$ { deny all; }
location ~ ^/wp-admin/includes/ { deny all; }
location ~ ^/wp-includes/[^/]+\.php$ { deny all; }
location ~ ^.*/\.git/.*$ { deny all; }
location ~ ^.*/\.svn/.*$ { deny all; }
# 禁用 Uploads 目录的 PHP
location ~ ^/wp\-content/uploads/.*\.(?:php[1-7]?|pht|phtml?|phps)$ { deny all; }
# 禁用 Plugins 目录的 PHP
location ~ ^/wp\-content/plugins/.*\.(?:php[1-7]?|pht|phtml?|phps)$ { deny all; }
# 禁用 Themes 目录的 PHP,慎重使用会影响到部分主题的缩略图裁剪哦!
location ~ ^/wp\-content/themes/.*\.(?:php[1-7]?|pht|phtml?|phps)$ { deny all; }
# 不记录 favicon.ico 请求
location = /favicon.ico { log_not_found off; access_log off;}
# 不记录 robots.txt 请求
location = /robots.txt { log_not_found off; access_log off;}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {expires 30d;}
location ~ .*\.(js|css)?$ { expires 30d;}
location ~ /\. {deny all;}
location ~ /\.ht { deny all; access_log off; log_not_found off;}
location ~ /\.user.ini { deny all; access_log off;log_not_found off;}

一般明月使用这些规则都是新建一个.conf 文件,在 Nginx 站点配置文件里单独 include 这个文件,重启 Nginx 生效,主要是为了根据不同站点需求进行细微的修改而已,理论上来说在宝塔面板里也可以这么用的,大家活学活用即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/17590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于vuestic-ui实战教程 - 页面篇

1. 简介 前面介绍了基本的内容比如如何获取动态数据,下面就到登录进来后的页面实现了,相信各位读者或多或少都有 element-uijs 的实战经历,那么 vuestic-uits 实现的页面又该如何写呢?带着疑问开启今天的学习(声明由于…

Linux系统编程学习笔记

1 前言 1.1 环境 平台:uabntu20.04 工具:vim,gcc,make 1.2 GCC Linux系统下的GCC(GNU Compiler Collection)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执…

BIGO前端CICD平台

本文首发于:https://github.com/bigo-frontend/blog/ 欢迎关注、转载。 我是谁 BIGO前端CICD平台,是一个服务于前端团队的全研发周期管理平台,已经是我们团队日常都要使用的工具了。 该平台实现了一键创建项目、发布编排、新建迭代、checkl…

uniapp 使用vuex 在app上能获取到state,小程序获取不到

1. 在根目录下新建store目录, 在store目录下创建index.js定义状态值import Vue from vue; import Vuex from Vuex; import Vuex from vuex; Vue.use(Vuex);const store new Vuex.Store({ state: { login: false, token: , avatarUrl: , userName: }, mutations: { lo…

JavaWeb Servelt原理

Servlet简介: Servlet的主要工作:处理客户端请求,生成动态响应,通常用于扩展基于HTTP协议的Web服务器。 Servlet技术是Java EE规范的组成部分,代表了服务器端的Java程序,主要负责处理来自客户端的Web请求,…

国内信创web中间件生态

国内信创web中间件生态 东方通 官网https://www.tongtech.com/pctype/25.html 宝蓝德 官网https://www.bessystem.com/product/0ad9b8c4d6af462b8d15723a5f25a87d/info?p101 金蝶天燕 官网 https://www.apusic.com/list-117.html 中创 官网http://www.inforbus.com…

数据库数据恢复—空间不足导致sqlserver数据库连接失效的数据恢复案例

数据库数据恢复环境: 某品牌r520服务器,服务器中有7块SAS硬盘,这7块硬盘组建了一组2盘raid1阵列和一组5盘raid5阵列,raid1阵列存储空间安装操作系统,raid5阵列存储空间存放数据。服务器上部署sql server数据库&#xf…

野外作战武器操作3D模拟实操仿真训练以便老兵能适应不同的训练需求

强国必须强军,我国在军事方面的投入持续加大,自然在军事武器培训方面不容忽视,在军事领域,3D模拟展示不仅提升了军事训练的效率,还为我们提供了更加直观、真实的武器体验。 首先,3D军事武器模拟展示能够提供…

Nacos 2.x 系列【6】持久化

文章目录 1. 前言2. Derby3. Mysql3.1 初始化脚本3.2 服务端配置3.3 验证 4. 数据源插件 1. 前言 Nacos中的用户、租户、服务配置等信息,需要使用关系型数据库进行存储,在实际开发中,可能还会面临各种数据库适配问题。 2. Derby Derby是Ap…

Android Studio 中gradle的bin和all区别

1.在android studio中设置安装gradle时,真各种版本看到眼花缭乱,还有疑惑gradle-*.*-all.zip与gradle-*.*-bin.zip的区别是什么。下面解压如下: bin: all: 其实,用bin就可以了,all文件就是多了docs(文档)和src(源码)两…

Linux网络-Socket套接字_Windows与Linux端双平台基于Udp传输协议进行多线程跨平台的服务器与客户端网络通信的简易聊天室实现

文章目录 一、Socket套接字二、socket 常见API1. int socket(int domain, int type, int protocol);2. int bind(int socket, const struct sockaddr *address, socklen_t address_len);struct sockaddr 3. ssize_t recvfrom(int socket, void *restrict buffer, size_t length…

go defer

type _defer struct {siz int32started boolopenDefer boolsp uintptrpc uintptrfn *funcval_panic *_paniclink *_defer }runtime._defer 结构体是延迟调用链表上的一个元素,所有的结构体都会通过 link 字段串联成链表。 只…

【全开源】酒店订单管理系统源码(FastAdmin+ThinkPHP)

一款基于FastAdminThinkPHP开发的旨在为民宿、酒店、宾馆等提供房态、订单、财务、客史等数据化、信息化的智慧管理工具,实现一站式订房管理,帮助酒店、民宿、宾馆提升管理效率,降低管理成本,提升行业竞争力。 打造高效、便捷的酒…

Generate Anything Anywhere in Any Scene #论文阅读

URL https://arxiv.org/pdf/2306.17154 TD;DR 2023 年 6 月 Wisconsin 的文章。围绕 ip 保持做的扩展任务,核心目标是对指定 ip 可以生成任意大小的(指定 ip)、任意背景的图片,同时可以通过 bbox 控制物体位置和多物体生成。主…

SOLIDWORKS教育版代理商应该如何选择?

SOLIDWORKS作为目前流行的三维设计软件在工程设计,制造和建筑中有着广泛的应用前景。教育版SOLIDWORKS软件是学生及教育机构学习教学的理想平台。 下面介绍几个挑选SOLIDWORKS教育版代理的关键要素: 1、专业知识与经验:代理商应掌握SOLIDWORKS等软件的丰…

ResNet残差网络的学习【概念+翻译】

基于何明凯前辈论文的学习 1.主要内容(背景) 1、首先提了一个base:神经网络的深度越深,越难以训练。 2、原因:因为随着神经网络层数的增加,通常会遇到梯度消失或梯度爆炸等问题,这会导致训练变…

gem5模拟器入门(三)——在配置脚本中添加Cache

使用gem5模拟器入门(二)——创建一个简单的配置脚本-CSDN博客配置脚本作为起点,本章将介绍一个更复杂的配置。我们将向系统添加一个缓存层次结构,如下图所示。此外,本章还将介绍如何理解gem5的统计输出,并向您的脚本添加命令行参数。 1.创建Cache对象 我们将使用经典的缓…

Robot Framework自动化测试基础入门

1、什么是Robot Framework Robot Framework是一个基于Python的关键字驱动的自动化测试框架。以下是关于Robot Framework的几个特点: 基于关键字驱动: 它允许测试人员使用Python封装关键字,这些关键字可以在非编码环境下被用来构建可执行的测试用例。易于扩展: 作为一个开源工…

20240528解决飞凌的OK3588-C的核心板的TYPE-C1接口识别问题

20240528解决飞凌的OK3588-C的核心板的TYPE-C1接口识别问题 2024/5/28 16:46 缘起: 现阶段碰到的USB相关的问题:(LINUX R4版本) 1、USB3.0插USB摄像头 lsusb找不到设备 2、刷机口只接了3根线,GND/D/D-,可以…

2024HBCPC:E Breakfast II

题目描述 作为一个合格的大学生,你不仅需要学习成绩好,还需要会买包子和鸡蛋。 今天,又轮到你们给你的导师买早饭了! 这一次你们一共需要给导师买 n n n 个包子和 m m m 个鸡蛋(请注意,这一次可能不再只…