首页 > 系统相关 >Nginx配置origin限制跨域请求 转载

Nginx配置origin限制跨域请求 转载

时间:2023-06-27 09:15:41浏览次数:31  
标签:origin Origin http 跨域 Access Nginx 请求

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

图片

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

漏洞复现

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

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

curl -H 'Origin:http://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,查看返回结果。

图片

 

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

链接:https://blog.csdn.net/qq_20236937/article/details/128640137

标签:origin,Origin,http,跨域,Access,Nginx,请求
From: https://www.cnblogs.com/testzcy/p/17507729.html

相关文章

  • Ingress Nginx Controller 使用
    1.IngressNginxController安装helm安装[root@k8s-master0126]#wgethttps://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz[root@k8s-master0126]#tar-zxvfhelm-v3.0.0-linux-amd64.tar.gz[root@k8s-master0126]#mvlinux-amd64/helm/usr/local/bin/helm[root@k8s-m......
  • 使用 Debian、Docker 和 Nginx 部署 Web 应用
    前言本文将介绍基于Debian的系统上使用Docker和Nginx进行Web应用部署的过程。着重介绍了Debian、Docker和Nginx的安装和配置。第1步:更新和升级Debian系统通过SSH连接到服务器。更新软件包列表:sudoaptupdate升级已安装的软件包:sudoaptupgrade第2步:......
  • Nginx 6个例子理解proxy_pass和rewrite的用法
    Nginx6个例子理解proxy_pass和rewrite的用法一、rewrite描述rewrite可以重写path,也可以重写整个url(如果存在协议,默认返回302临时跳转,即使加了last和break也无效)。rewrite共有4种flag:last、break、redirect(302)、permanent(301)。当location中存在flag时,不会再执行之后的......
  • 基于docker部署nginx
    基于docker部署nginx1.拉取nginx镜像文件dockerpullnginx2.创建nginx本地映射文件mkdir-p/root/docker/nginx/logsmkdir-p/root/docker/nginx/conf.dtouchpinter.confvipinter.conf把pinter改为docker中的别名3.启动nginx服务dockerrun-d-p80:80--networkmtx-v/ro......
  • springboot 跨域设置
      写文章 SpringBoot项目解决跨域的几种方案小满只想睡觉一直快乐!​关注她  在用SpringBoot开发后端服务时,我们一般是提供接口给前端使用,但前端通过浏览器调我们接口时,浏览器会有个同源策略的限制,即协议,域名,端口任一不一样时都会......
  • nginx RTMP推拉流,多个音频流合并。
    使用nginxRTMP(nginx的一个插件模块,具体的网上搜一下)做一个简易的多人音频通话流媒体服务器,多个端通话时,客户端无法处理其他端发过来的音频流,比如A、B、C三个端通话,A设备同时持有B、C的音频流,这样对设备端非常的不友好。这时候就需要用到一个强大的工具,FFMPEG,安装网上很多,搜下就......
  • nginx 1.25.1 发布
    nginx1.25.1有一个很不错的特性,就是支持了http2指令,以前这个指令主要是也listen配置使用的(ssl+http2场景)独立指令之后就有了很方便的功能了,比如有些业务希望使用http0.9-1.1协议,有些需要使用http2,当然目前也是支持了http3的,可以做到分离,以前版本存在一个问题就是开启了之......
  • vue-router之hash与history,以及nginx配置
    本篇讲解前端项目的路由模式(以vue-router为例),以及history模式下的项目部署问题。vue-router的路由模式可以通过指定mode属性值控制,可选值:"hash"、"history"、"abstract",默认:"hash"(浏览器环境),"abstract"(Node.js环境)constrouter=newVueRouter({mode:......
  • Nginx配置max_fails fail_timeout 不起作用 - stub_status - 调试 nginx --with-deb
    0.stub_statusconfigurearguments:--prefix=/usr/local/tengine--with-http_realip_module--with-http_gzip_static_module--with-pcre--with-http_stub_status_module--with-http_ssl_module--add-module=/opt/nginx-goodies-nginx-sticky-module-ng[root@slave1con......
  • Nginx-PHP优化设置 + lnmp调优的关键影响因素 + php-fpm + nginx返回码 + tcp调优 +
    最大文件描述符Linux内核本身有文件描述符最大值的**,你可以根据需要更改:系统最大打开文件描述符数:/proc/sys/fs/file-max临时性设置:echo1000000>/proc/sys/fs/file-max永久设置:修改/etc/sysctl.conf文件,增加fs.file-max=10000002、用户级设置vi/etc/security/limits.confhttp......