Skip to content

Latest commit

 

History

History
18 lines (11 loc) · 1.57 KB

cross-origin.md

File metadata and controls

18 lines (11 loc) · 1.57 KB

跨域问题

通过实例理解Web应用跨域问题 | Tony Bai

介绍一下跨域问题,包括域的定义

关键词:域名、端口、协议,Cookie 等资源。

浏览器的同源策略给 web 开发带来什么烦恼?如何解决?

烦恼:跨域数据访问限制、跨域脚本调用限制以及无法在不同域名之间共享会话信息等。为此,开发人员需要使用一些技术手段来解决这些跨域问题,这增加了开发的复杂性,并且需要额外的配置和处理,给开发人员带来了一定的麻烦。此外,不正确地处理跨域请求也可能导致安全漏洞,因此开发人员还需要对跨域请求进行合理的安全控制和验证。

解决方案——确定请求来源。比如让跨域请求携带”Origin”请求头字段,指示请求的来源,服务器端进行验证和安全性检查。

衍生问题:如何防止请求头被伪造?

  1. 验证来源:服务器应该验证请求的来源(Origin头),但请记住,这个头可以被伪造。更严格的做法是验证引用页(Referer头),虽然这也不是完全可靠的。
  2. 使用API密钥:对于敏感的API,可以要求客户端提供API密钥。这增加了一层安全性,因为即使攻击者可以伪造请求头,他们也需要有效的API密钥。
  3. OAuth和令牌:对于涉及用户数据的API,使用OAuth或类似的认证机制。用户的身份可以通过令牌进行验证,这些令牌不容易被伪造。