nginx 安全配置

1、前言

   前后端分离后,nginx 作为跨域转发工具在日常应用中越来越广泛,它的安全性不能不能忽略。

2、nginx 安装相关说明

2.1 直接下载安装包

   在nginx官网下载编译好的安装包,链接地址为nginx: download。如果是linux系统,直接使用wget  https://nginx.org/download/nginx-1.26.0.tar.gz进行下载解压安装即可。

2.2 下载nginx 源码

     在github 提供nginx 源码,地址为https://github.com/nginx/nginx,将源码拉取到本地后要编译,执行如下命令即可。以centos 系统为例 ,需要支持ssl,执行命令如下:

1、yum install openssl*

2、# ./configure --prefix=/usr/local/nginx-1.26.0 \
--with-http_ssl_module --with-http_spdy_module \
--with-http_stub_status_module --with-pcre
–with-http_stub_status_module:支持 nginx 状态查询
–with-http_ssl_module:支持 https
–with-http_spdy_module:支持 google 的 spdy,
–with-pcre:为了支持 rewrite 重写功能,必须制定 pcre
3、 make  
4、make  install

3、nginx 安全配置

3.1 使用并配置https

   在nginx 配置文件新增如下截图配置

特别注意,要 使用高版本的 TLS 协议(如 TLS1.2 TLS1.3 ),替换低版本协议,因为低版本的加密算法强度不足。

3.2 校验http host 头

    有的时候服务端使用请求头中host 字段获取站点或者ip, 但服务端没有host header 值进行处理,可能造成恶意代码的传入,所以一般要你校验host头部  。nginx 配置如下:

3.3 关闭不安全的http 方法

     服务端开启了如 OPTIONS HEAD 等不安全的 HTTP 方法,存在被非法利用、未
授权访问的风险。所以要关闭此类接口。nginx 配置如下:

3.4 跨域配置最小权限策略

3.5 校验referer

    未校验referer值,可能导致跨站点伪造。可以防盗链,其实nginx的secure_link也可以防止盗链,需要在nginx 中新增如下截图

3.6 定义网络白名单

cat /home/whitelist.conf#白名单IPallow 10.1.1.10;allow 10.1.1.11然后在nginx 配置文件中引用此文件,如下
location /{include /home/whitelist.conf;#默认位置路径为/etc/nginx/ 下,#如直接写include whitelist.conf,则只需要在/etc/nginx目录下创建whitelist.confdeny all;
}

黑名单和上面方法类似。

3.7  文件MD5 值校验

文件的MD5校验是验证文件在下载过程中,文件是否正确,当客户端下载此文件时候计算此文件的MD5和和响应头部MD5比较。file-md5此模块并不是nginx 官方的,需要下载编译安装。下载地址https://github.com/cfsego/file-md5/archive/master.zip -O file-md5-master.zip。安装后需要在nginx中配置如下

add_header Content-MD5 $file_md5;

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

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

相关文章

720VR三维立体小程序源码系统 手机电脑端自适应 前后端分离 带完整的安装代码包以及搭建教程

系统概述 720VR 三维立体小程序源码系统是基于先进的技术和理念打造而成的综合性平台。它融合了虚拟现实技术、移动互联网技术以及计算机编程技术,旨在为用户提供沉浸式的 720 度全景体验。 该系统的设计充分考虑了用户的需求,无论是在手机端还是电脑端…

vue-cli2项目中使用scss

前言: 首先要搞清楚Sass和Scss的区别: 实际上Sass和Scss是同一种东西,Scss是 Sass3 引入新的语法,它们都是css预处理器。通常称为Sass,但存在两种不同的语法风格: 文件扩展名:Sass 默认…

探索Python的包与模块:构建项目的基石

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、模块与包的基础认知 1. 模块的定义与创建 2. 包的组织与管理 二、模块与包的进阶使用…

懒人创业秘诀揭秘:加入萤瓴优选项目,普通人也能打开财富大门

创业对于很多人来说,是一个艰难而复杂的过程。然而,时代的发展带来了新的机遇,懒人创业成为了一种趋势。加入萤瓴优选项目,普通人也能轻松打开财富大门。本文将揭秘懒人创业的秘诀,并分析萤瓴优选项目如何帮助普通人实…

极致产品力|从toB到toC,年销4.2亿份的冻干品牌是如何炼成的?

天野食品是日本冻干食品长红40年的品牌,从制造焦糖的小工厂,转变为日本冻干速食的行业第一,它是如何做到的呢? 深耕TOB业务,如何在ToC业务创造增长 天野公司以冻干食品闻名但并非以此起家。自1940年成立以来,便以染料…

tomcat不定时宕机,Failed to write core dump

在linux上的tomcat部署的web应用,不定时会自动挂掉,排查tomcat安装路径/logs/catalina.out 发现提示Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java a…

前端本地项目启动供后端或者测试调试

目录 1、项目本地启动的地址 2、打开终端输入 ifconfig 查找ip 3、将localhost替换成ip即可供他人测试 1、项目本地启动的地址 http://localhost:8100/?module220&webRoutevpc-gray&backRoutevpc-gray........................... 2、打开终端输入 ifconfig 查找i…

DreamPose: Fashion Image-to-Video Synthesis via Stable Diffusion

UW&UCB&Google&NVIDIA ICCV23https://github.com/johannakarras/DreamPose?tabreadme-ov-file 问题引入 输入参考图片 x 0 x_0 x0​和pose序列 { p 1 , ⋯ , p N } \{p_1,\cdots,p_N\} {p1​,⋯,pN​},输出对应视频 { x 1 ′ , ⋯ , x N ′ } \{x_1,…

智慧园区:打造未来城市的新模式

随着城市化进程的加速和科技创新的推动,城市面临着诸多挑战和机遇。如何提升城市的竞争力和可持续性,是一个亟待解决的问题。在这个背景下,智慧园区作为一种新型的城市发展模式,引起了越来越多的关注和探索。 什么是智慧园区&…

天若OCR 识别 (本地文字识别转换工具)

前言 天若OCR文字识别本地版是一款在天若OCR文字识别工具v5.0免费开源版的基础上采用Chinese-lite框架和Paddle-ocr框架本地化识别接口编译而成,无需联网也无需申请密钥,纯本地运算,识别准确度和速度很快,操作和天若OCR免费版一样&#xff0…

如何将短信从 iPhone 传输到计算机 - 5 种灵活的方式

概括 与他人交流的多种方式之一是发送短信。对于那些包含珍贵回忆或重要信息的消息,您需要将它们发送到另一台设备(例如计算机)进行备份。将短信文件发送到计算机是保存宝贵数据的最佳方法之一。继续阅读本文,了解如何将短信从 i…

gitlab将本地文件项目上传至gitlab服务

打开gitlab网页界面,登陆管理员账号 (测试服务器安装的gitlab,浏览器输入ip或配置的gitlab地址) 创建新项目 使用gitlab创建项目 创建一个新项目(忽略分组) (忽略分组) 在创建工…

决策树算法实战

本实战主要目标是讲解如何使用sklearn库来构造决策树,包括其中的一些参数的使用,以及参数调优对模型精确度的影响。 1. 数据处理 导入Pandas和Matplotlib两个库。 # 导入Pandas和Matplotlib两个库 %matplotlib inline import matplotlib.pyplot as pl…

动态规划part02 Day42

LC62不同路径 LC63不同路径II(超时10min) 超时原因分析:思路想错了,即便是正确思路初始化也有点问题,应该将不必要的判断逻辑引入初始化的过程中初始化: 从左上角到[i][0]和[0][j]都只有一条路径dp[i][0]1和dp[0][j]1引入故障&am…

URL跳转

1.URL介绍 开放重定向(Open Redirect),也叫URL跳转漏洞,是指服务端未对传入的跳转url变量进行检查和控制,导致诱导用户跳转到恶意网站,由于是从可信的站点跳转出去的,用户会比较信任。 2.URL跳…

监控云安全的9个方法和措施

如今,很多企业致力于提高云计算安全指标的可见性,这是由于云计算的安全性与本地部署的安全性根本不同,并且随着企业将应用程序、服务和数据移动到新环境,需要不同的实践。检测云的云检测就显得极其重要。 如今,很多企业…

公司预防文件泄密的常见手段 | 文件防泄密软件推荐排行榜

在当今信息化社会,企业面临着越来越多的文件泄密风险。为了保护企业的核心信息和资产,公司需要采取一系列手段来预防文件泄密。本文将介绍公司预防文件泄密的常见手段,并推荐五款优秀的防泄密软件,帮助企业构建更为严密的数据安全…

二零二四充能必读 | 618火热来袭,编程书单助你提升代码力

文章目录 📘 Java领域的经典之作🐍 Python学习者的宝典🌐 前端开发者的权威指南🔒 并发编程的艺术🤖 JVM的深入理解🏗 构建自己的编程语言🧠 编程智慧的结晶🌟 代码效率的提升 亲爱的…

VUE3+TS+elementplus+Django+MySQL实现从数据库读取数据,显示在前端界面上

一、前言 前面通过VUE3和elementplus创建了一个table,VUE3TSelementplus创建table,纯前端的table,以及使用VUE3TSelementplus创建一个增加按钮,使用前端的静态数据,显示在表格中。今天通过从后端获取数据来显示在表格…

学习信号和槽(1)

信号和槽函数 一、了解信号和槽的概念二、信号和槽的使用2.1、第一种方法2.2、第二种方法2.3、第三种方法2.4、第四种方法2.5、第五种方法 一、了解信号和槽的概念 信号(Signal):就是在特定条件下被发射的事件,比如QPushButton 最…