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) 前端请求:
- 用户打开浏览器访问 http://example.com。
- 应用中有一个按钮,用户点击按钮后,前端应用将向 http://api.weather.com 发起请求,获取天气数据。
(2) 跨域问题:
- 由于 http://example.com 和 http://api.weather.com 是不同的域,直接请求会被浏览器的同源策略阻止
(3). 服务器配置CORS :
- http://api.weather.com 的服务器配置了CORS,允许来自 http://example.com 的请求
- 具体来说,服务器在响应头中设置了 Access-Control-Allow-Origin 为 http://example.com,从而告诉浏览器这个请求是被允许的
(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: 指定的域名