安全测试 之 常见安全漏洞:CORS

1. 背景

  • 安全测试定义:安全测试,是在软件产品开发基本完成时,验证产品是否符合安全需求定义和产品质量标准的过程。
  • 目的:通过对系统进行全面的脆弱性安全测试,发现系统未知的安全隐患并提出相关建议,确保系统的安全性。安全性一般分为应用程序级别和系统级别,区别如下:

(1)应用程序级别:包括对应数据或业务功能的访问,核实应用程序的用户权限只能操作被授权访问的那些功能或数。

(2)系统级别:包括对操作系统的目录或远程访问,主要核实具备系统和应用程序访问权限的操作者才能访问系统和应用程序

2. 安全漏洞分类

  • 安全漏洞根据客户端与服务器端的分布,分为:

2.1 客户端

  • 钓鱼
  • 案链
  • XSS
  • 点击劫持
  • CSRF
  • URL 跳转

2.2 服务端

  • SQL注入
  • 命令注入
  • 文件上传漏洞
  • 服务器请求伪造(SSRF)
  • 反序列化漏洞
  • 命令执行漏洞
  • 文件包含漏洞
  • 逻辑漏洞

3. 安全漏洞详解

3.1 CORS

CORS,全称为 Cross-Origin Resource Sharing(跨域资源共享),是一种基于HTTP协议的机制,用于解决浏览器的同源策略限制所带来的跨域问题。同源策略是浏览器为了保护用户信息安全而实施的一种安全策略,它规定Web浏览器只允许脚本访问与其加载页面同源(即协议、域名和端口相同)的资源。当一个网页尝试从不同源的服务器请求资源时,如果没有适当的措施,浏览器会阻止这种跨域请求,以防止恶意网站读取另一个网站的数据。

3.1.1 同源策略

定义:同源(Same-Origin)是指在浏览器中,两个URL具有相同的协议、域名和端口号。为了保障安全,浏览器在同源策略(Same-Origin Policy)下,限制不同源的网页之间的资源访问。具体来说,如果两个URL在协议(如HTTP或HTTPS)、域名(如example.com)和端口号(如80或443)这三方面完全一致,则它们被认为是同源的

(1)同源策略的重要性

同源策略是浏览器的一种安全机制,用于防止恶意网站通过脚本操作用户的敏感数据。例如,它可以防止一个恶意网页读取另一个网页的cookie或LocalStorage数据。

(2)绕过同源策略的技术

尽管同源策略限制了跨域访问,但有一些合法的方法可以安全地绕过这些限制,例 :

  • CORS(跨域资源共享):允许服务器设置特定的HTTP头,明确允许哪些源可以访问
  • 服务器代理:通过服务器中转请求,以避免前端直接进行跨域请求。

3.1.2 跨域

例如:你有一个运行在 http://example.com 上的前端应用,这个应用需要从 http://api.weather.com 获取天气数据

过程:

(1) 前端请求:
(2) 跨域问题:
(3). 服务器配置CORS :
(4). 请求成功:
  • 浏览器检测到响应头中的CORS设置,允许此次跨域请求
  • 天气数据成功返回到前端应用,并显示在用户界面上,比如展示当前的温度和天气状况。

3.1.2 cors

(1) 定义
复制代码
  CORS:(Cross-origin resource sharing)跨域资源共享,CORS是一种机制,这种机制通过在http头部添加字段,通常情况下,web应用A告诉浏览器,自己有权限访问应用B。这样就可以解决跨源的问题了
(2) 解决方法
复制代码
  直接在服务器配置里面设置返回 或 Php等接口统一返回如下包头,通过设置http头部字段,让客户端有资格跨域访问资源。通过服务器的验证和授权之后,浏览器有责任支持这些http头部字段并且确保能够正确的施加限制Access-Control-Allow-Origin: 指定的域名
(3) bug样例和截图
相关推荐
niuniu_66617 小时前
Selenium 性能测试指南
selenium·测试工具·单元测试·测试·安全性测试
niuniu_6662 天前
安全性测试(Security Testing)
测试工具·单元测试·appium·测试·安全性测试
不想加班的码小牛5 天前
第6期:生成式AI安全攻防战——从提示词注入到模型反制的终极对决
人工智能·安全·安全架构·安全性测试
互联网杂货铺6 天前
功能测试、性能测试、安全性测试详解
自动化测试·软件测试·功能测试·测试工具·职场和发展·性能测试·安全性测试
pitt19976 天前
Chrome 开发环境快速屏蔽 CORS 跨域限制!
chrome·跨域·cors·解决跨越技巧
Codingwiz_Joy13 天前
Day14 -实例 -利用工具进行js框架的信息收集
安全·web·js·安全性测试
Codingwiz_Joy18 天前
Day09 -实例:拿到加密密文进行解密
算法·安全·安全性测试
Codingwiz_Joy19 天前
Day07 -实例 非http/s数据包抓取工具的使用:科来 & wrieshark & 封包监听工具
网络·网络协议·安全·安全性测试
shenmu8421 天前
CORS + Django 跨域配置
django·cors
Codingwiz_Joy25 天前
Day04 模拟原生开发app过程 Androidstudio+逍遥模拟器
android·安全·web安全·安全性测试