• 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 定义网络白名单

    1. cat /home/whitelist.conf
    2. #白名单IP
    3. allow 10.1.1.10;
    4. allow 10.1.1.11
    5. 然后在nginx 配置文件中引用此文件,如下
    6. location /{
    7. include /home/whitelist.conf;
    8. #默认位置路径为/etc/nginx/ 下,
    9. #如直接写include whitelist.conf,则只需要在/etc/nginx目录下创建whitelist.conf
    10. deny all;
    11. }

    黑名单和上面方法类似。

    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;

  • 相关阅读:
    计算结构体大小:内存对齐详解
    高维数组是如何通过底层连续存储实现的?
    矩阵白化原理及推导
    Redis基础-概念和基础
    Delphi使用JSON
    C语言中的文件操作那些事儿~~
    2023-09-12 mysql-代号m-添加字段且字段非空出错-问题分析
    Linux中间件之源码分析redis的渐进式rehash过程
    基于jeecg-boot的flowable流程自定义业务退回撤回或驳回到发起人后的再次流程提交
    《数据结构C++版》实验三:二叉树实验
  • 原文地址:https://blog.csdn.net/fangxiang2008/article/details/139269414