其他漏洞 - 跨源安全问题

  同源策略(Same Origin Policy):浏览器为保护用户信息免受不同源的网页访问,实施同源策略,规定只有在协议、域名、端口号三者相同的情况下,一个网页或脚本才能访问另一个网页的内容。
  实际上很多场景还是需要进行跨源访问操作(前后端分离、调用第三方接口),常用的有以下几种跨域解决方法:CORS、JSONP、PostMessge、WebSockets、代理服务器。不过提供便利的同时也伴随着一些安全问题……

漏洞场景:CORS漏洞场景

动态设置Access-Control-Allow-Origin为请求来源,导致潜在的任意跨域访问风险

tips
  如果服务器配置了不安全的 Access-Control-Allow-Origin(如使用 * 或动态匹配请求的 Origin),并且允许携带凭证(Access-Control-Allow-Credentials: true),攻击者可以在恶意网站发起跨域请求并成功读取服务器响应,导致用户的敏感数据被窃取或恶意操作得以执行。
  CORS漏洞与其他漏洞(如CSRF或XSS)组合使用时,会大幅提升攻击的破坏力,形成以下主要危害:
跨域数据窃取、身份盗用和会话劫持、绕过CSRF防御机制、数据操纵与业务逻辑篡改
 

缺陷代码

安全代码:CrossOrigin白名单

通过将Access-Control-Allow-Origin限定为可信来源,从而防止潜在的跨域数据泄露风险

tips
安全编码规范:
    1.严格限制允许的来源(Access-Control-Allow-Origin),只允许受信任的域名,禁止使用*通配符,避免动态来源。
    2.限制可用的HTTP方法和请求头(Access-Control-Allow-Methods和Access-Control-Allow-Headers),仅允许必要的HTTP请求方法(GET、POST),限制自定义头部(Access-Control-Allow-Headers)。
    3.不要信任全部自身子域,减少攻击面

安全代码