安全测试 之 常见安全漏洞: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样例和截图
相关推荐
H_kiwi5 天前
APT 参与者将恶意软件嵌入 macOS Flutter 应用程序中
java·python·安全·flutter·macos·安全威胁分析·安全性测试
测试小小怪下士9 天前
单元测试、集成测试、系统测试、验收测试、压力测试、性能测试、安全性测试、兼容性测试、回归测试(超详细的分类介绍及教学)
功能测试·单元测试·测试用例·集成测试·压力测试·模块测试·安全性测试
云起无垠11 天前
【论文速读】| F2A:一种利用伪装安全检测智能体进行提示注入的创新方法
安全·语言模型·安全性测试
子非鱼92115 天前
【Ajax】跨域
javascript·ajax·cors·jsonp
ξ流ぁ星ぷ13220 天前
小林渗透入门:burpsuite+proxifier抓取小程序流量
安全·web安全·网络安全·小程序·安全性测试
爱吃土豆的程序员20 天前
深入理解跨域资源共享(CORS)安全问题原理及解决思路
java·springboot·cors·安全问题
英英-22 天前
安全性测试
安全性测试
汤米粥1 个月前
网络请求自定义header导致跨域问题
vue.js·跨域·cors
undefined&&懒洋洋1 个月前
解决跨域问题
前端·网络·后端·http·跨域·cors·1024程序员节
Elastic 中国社区官方博客1 个月前
使用 NLP 和模式匹配检测、评估和编辑日志中的个人身份信息 - 第 1 部分
大数据·人工智能·elasticsearch·搜索引擎·ai·自然语言处理·安全性测试