文章目录

  • 场景
  • 解决方案
    • option的设置,实测无效
    • deny和allow 可以么
    • 最终方案,判断$http_origin
  • 其他
    • nginx默认是不允许跨域的
    • 使用geo改进丑陋的代码
    • access配置为什么会重复
    • try_files 和 if不要同时使用

本文解决的是跨域漏洞问题。
网上的多是如何实现跨域,这里是避免跨域。

场景

项目发现跨域漏洞。
也就是说,origin 设置为任意域名,都可以返回数据。这是不安全的。
实际应该只有指定的域名才可以返回数据。

目的: 不允许任意域访问数据。

解决方案

option的设置,实测无效

if ($request_method = 'POST') {add_header Access-Control-Allow-Origin *; # 这里需要设置为自己的域名add_header Access-Control-Max-Age 1728000;add_header Access-Control-Allow-Methods GET,POST,OPTIONS;add_header Access-Control-Allow-Headers  'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';add_header Content-Type' 'text/plain; charset=utf-8';add_header Content-Length 0 ;return 204;
}

deny和allow 可以么

配置:

satisfy all;
allow 127.0.0.1;
allow 192.168.0.1;
deny all;

修改origin为白名单,发现返回不了,只得作罢。
后来发现这个控制的是客户端ip,不是跨域origin地址,所以不管有效无效都是错的。

最终方案,判断$http_origin

原来: $http_origin是origin的值,如果不在白名单范围内,就返回403。
配置:

if ( $http_origin !~* 127.0.0.1|192.168.0.1|baidu|\*) { # 最后面的 \* 是为了匹配 * 号return 403 ;
}

另一种写法(加小块号)也是可以的,如:

if ( $http_origin !~* (127.0.0.1|192.168.0.1|baidu|\*) )

注: 这里面可以使用正则表达式。
可以写ip,也可以写域名,或者域名的一部分。

实测有用。
可能的副作用:
1、如果后面跟着try_files,try_files可能会失效。
例如如果某个地址找不到,那么会重定向到index.html。加了如上代码之后,无法重定向了。现象是刷新或者页面直接输入地址,会报403。
还有可能同页面的下载也会有问题,报403。

目前先将就用着,其实应该找更好的方法。

其他

nginx默认是不允许跨域的

配置中没有找到开启跨域的内容,为什么会有跨域安全问题呢?
待解决。

使用geo改进丑陋的代码

if后面跟多条件,代码确实比较丑陋。可以用geo模块转换下,代码就清爽很多,而且可以复用。
geo中是可以使用掩码等方式的,但是不知道是否可以通配符匹配。

access配置为什么会重复

我们发现,返回的报文中,access属性可能会多个。
Access-Control-Allow-Origin: deny
Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: aaa.com

这说明他不是覆盖的关系,而是并列存在的关系。

try_files 和 if不要同时使用

同时使用发现有问题。
可能会导致if无效,或者try_files无效。

建议if语句放在外面。

nginx跨域漏洞问题处理相关推荐

  1. Android中WebView的跨域漏洞分析和应用被克隆问题情景还原(免Root获取应用沙盒数据)...

    一.前言 去年年底支付宝的被克隆漏洞被爆出,无独有偶就是腾讯干的,其实真正了解这个事件之后会发现,感觉是针对支付宝.因为这个漏洞找出肯定花费了很大劲,主要是因为支付宝的特殊业务需要开启了WebView ...

  2. 蜜罐中利用jsonp跨域漏洞和xss漏洞的分析

    一.前言 我们在打红队的时候,经常会碰到蜜罐,而更有一些"主动防御"的蜜罐中利用到了一些网站的跨域漏洞和xss,对此进行简单分析. 二.蜜罐的概念 蜜罐主要是通过布置诱饵,诱使攻击 ...

  3. Nginx跨域配置、限制连接、限制下载速度

    目录 一.Nginx跨域配置 二.Nginx限制连接配置 三.Nginx限制下载速度配置 一.Nginx跨域配置 #允许跨域请求的域,* 代表所有 add_header 'Access-Control ...

  4. Jsonp跨域漏洞浅析

    为什么要用到jsonp跨域? 同源策略:协议.域名.端口都相同,是一种安全策略,不同源的客户端脚本在没有明确授权的情况下,不能读取对方资源. 如何解决跨域(目前我掌握的有两种手段 (1)JSONP方式 ...

  5. vue项目打包部署nginx跨域

    vue项目打包部署nginx跨域 vue项目连接外部api接口时,打包部署到nginx后出现api404,api跨域问题,这个时候需要给vue项目本身进行跨域,再配置nginx中进行跨域即可解决,详见 ...

  6. 修复Cors跨域漏洞

    由于项目是采用前后端分离开发的,所以前端项目访问服务器时需要跨域,所以就在服务器配置了 Access-Control-Allow-Origin 等于 * ,代码如下 @Configuration pu ...

  7. nginx跨域步骤详情

    此文章只实现在本地开发环境下的应用nginx跨域 1.下载nginx稳定版本 下载地址:nginx: download 2. 配置nginx文件下的nginx.conf 3. 打包 我用的react ...

  8. web漏洞挖掘指南-前端跨域漏洞

    web漏洞挖掘指南 前端跨域漏洞 一.何为跨域 1.设想一种场景,一个恶意网站上嵌入了一个iframe标签去加载银行的登陆页面,高度和宽度的设置和真实的银行官网一样,当用户访问恶意网站并登录时,攻击者 ...

  9. CORS跨域漏洞学习

    目录 前言 一.CORS及SOP简介 跨域访问的一些场景: 二.CORS跨域原理及漏洞成因 CORS跨域--简单请求的流程 CORS跨域--非简单请求的流程 三.CORS漏洞攻击流程 四.CORS漏洞 ...

最新文章

  1. 网站建设难?三个技巧来帮你!
  2. Windows下的文件类型
  3. daemon.json无法启动docker_devops一键部署|详解如何搭建git+maven+jenkins+docker
  4. 顺丰快递单号的规律_顺丰快递单号查询跟踪(单号码查询)
  5. Git之 手把手教你使用Git
  6. redis 安装错误 jemalloc.h: No such file or directory
  7. 基于matlab的图像分割,基于MATLAB的图像分割算法研究毕业论文
  8. 单片机单口不可用或被占用_新唐单片机代码评审总结
  9. 联合促经济 伟库网在江门普及SaaS
  10. Redis开发与运维学习笔记
  11. PHP爬虫最全总结2-phpQuery,PHPcrawer,snoopy框架中文介绍
  12. 《UNIX环境高级编程》(第3版)
  13. Log4Qt 日志格式化(TTCCLayout)
  14. Unit 1: Packet Sniffing 1.1 Packet Sniffing Introduction to Packet Sniffing
  15. 对物联网的感悟_对物联网产业的理解 对物联网的感悟
  16. 初中信息技术说课稿_小学信息课说课稿范文(精选6篇)
  17. 【C++ 】STL求全排列和组合
  18. 超乎认知 认知智能十大黑科技 我国首次对外公布 道翰天琼认知智能
  19. Vue Devtools不显示Components
  20. 一分钟了解“#include iomanip”

热门文章

  1. 轴承上下料系统 欧姆龙NX1P2-1140DT,经典四轴定位控制
  2. 独上高楼, 望尽天涯路 . (路在前方)
  3. WebOS 1.4.5 SDK安装与第一个Hello World
  4. Apache commons lang3 StringUtils工具类
  5. 成都市发布大数据产业发展规划 2025年产值达到3000亿元
  6. 点滴积累,汇聚无限-菜鸟成长记
  7. linux mint flasher plugin
  8. rs232读取智能电表_【华恒仪表冠名】物联网智能电表会取代预付费电表吗?
  9. The goal you specified requires a project to execute but there is no POM in this directory问题解决
  10. Motion-Attentive Transition for Zero-Shot Video Object Segmentation论文浅读