0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Nginx配置origin限制跨域请求

马哥Linux运维 来源:马哥Linux运维 2023-06-26 10:49 次阅读

按照等保要求,跨域的不安全性,需要修复。

da4f09c6-1367-11ee-962d-dac502259ad0.png

这个需要根据客户端传递的请求头中的Origin值,进行安全的跨站策略配置,目的是对非法的origin直接返回403错误页面。

漏洞复现

复现方式为在 Header 中指定 Origin 请求头,看是否可以请求成功。

能够请求成功,说明未对请求头进行控制,有漏洞。

curl-H'Origin//test.com'http://192.168.15.32:80

修复办法

在http中定义一个通过map指令,定义跨域规则并返回是否合法

http {
    ...
//再白名单里边返回0,不在返回1
    map $http_origin $allow_cors {
        default 1;
        "~^https?://.*?.tripwolf.com.*$" 1;
        "~^(https?://(dmp.finerice.cn)?)$" 1;
        "~*" 0;
    }
    server {
# 指定允许其他域名访问        
        add_header Access-Control-Allow-Origin $http_origin;
        # 允许的请求类型
        add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
        # 许的请求头字段
        add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";


        location / {
            # 进行请求拦截
            if ($allow_cors = 0){
                return 403;
            }
            root /mnt/data;
        }
    }
}

验证方法

通过POSTMAN进行请求模拟,配置不同的Origin,查看返回结果。

da681268-1367-11ee-962d-dac502259ad0.png

如果不需要跨域,则直接清理掉add_header Access-Control-Allow-Origin等相关配置,就不这么复杂了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模拟
    +关注

    关注

    7

    文章

    1413

    浏览量

    83654
  • 客户端
    +关注

    关注

    1

    文章

    282

    浏览量

    16339
  • nginx
    +关注

    关注

    0

    文章

    135

    浏览量

    11986

原文标题:Nginx配置origin限制跨域请求

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【NanoPi NEO试用体验】之安装配置Nginx环境WEB网站详解

    速度。root@nrjs-cn:~# apt-get install nginx【1.3启动NGINX服务】待NGINX安装完成后不需要做任何配置就能够直接使用如下命令启动,如果启动错
    发表于 10-18 12:25

    nginx中的sendfile配置说明

    nginx配置sendfile及详细说明
    发表于 05-05 08:08

    采用Nginx的反向代理解决

    40Nginx的反向代理功能解决问题
    发表于 10-10 10:58

    ajax如何克服

    如何克服ajax
    发表于 04-30 13:25

    请问如何解决Vue加入withCredentials后无法进行请求?

    Vue加入withCredentials后无法进行请求
    发表于 11-06 06:39

    nginx错误页面配置

    16、nginx 错误页面配置nginx错误页面包括404 403 500 502 503 504等页面,只需要在server中增加以下配置即可: error_page404 403
    发表于 07-26 06:54

    如何处理好FPGA设计中时钟间的数据

    时钟处理是FPGA设计中经常遇到的问题,而如何处理好时钟间的数据,可以说是每个FPGA初学者的必修课。如果是还是在校的学生,时钟
    发表于 07-29 06:19

    如何处理好时钟间的数据呢

    时钟处理是什么意思?如何处理好时钟间的数据呢?有哪几种时钟处理的方法呢?
    发表于 11-01 07:44

    主要学习下nginx的安装配置

    主要学习下nginx的安装配置,以便于后续学习。以下在本地虚拟机上搭建学习。1、检查系统网络是否能连通公网:ping www.taobao.com2、确认yum源是否配置好,用于下载安装环境基础包
    发表于 10-19 14:12

    展示一下nginx的学习模块

    1、stub_status模块:用于展示nginx处理连接时的状态。配置语法如下:Syntax:stub_status;Default:默认没有配置Context:server、location可以
    发表于 10-19 14:16

    看看nginx的连接频率limit_conn_module和请求频率limit_req_module限制模块

    影响业务正常运行。往往办法是限制对同一个IP的连接数和并发数进行限制。今天我们就来看看nginx的连接频率limit_conn_module和请求频率limit_req_module
    发表于 10-19 14:20

    配置Nginx访问日志

    每当处理客户请求时,Nginx都会在访问日志中生成一个新记录。每个事件记录都包含一个时间戳,并包含有关客户端和所请求资源的各种信息。访问日志可以显示访问者的位置,访问者的访问的页面等。
    的头像 发表于 05-24 09:59 1996次阅读

    不用Nginx,只用Tomcat的Http请求流程

    只用Tomcat,不用Nginx搭建Web服务,行不行?我曾经提出的愚蠢问题,今天详细给自己解释下,为什么必须用Nginx
    的头像 发表于 10-17 10:54 374次阅读

    Nginx 如何实现高性能低消耗

    Nginx具有丰富的模块库、灵活的配置、较低资源消耗等优点。下面,我们一起深入看一下Nginx的工作机制 1. Nginx 如何实现高性能低消耗的呢? 我们从以下几个方面说明以下:
    的头像 发表于 11-11 11:31 345次阅读
    <b class='flag-5'>Nginx</b> 如何实现高性能低消耗

    Nginx配置文件如何设置头信息保留真实IP不丢失

    Nginx 配置中设置头信息以保留客户端的真实 IP 地址通常是在使用反向代理的场景中需要的。当 Nginx 作为反向代理时,客户端的真实 IP 地址可能会在转发请求时丢失,因为到
    的头像 发表于 11-30 10:54 931次阅读