加载中...
跨源资源共享是一种基于 HTTP 头的机制,允许服务器声明哪些外部源可以访问其资源,从而在同源策略的限制下安全地开放跨域请求。它通过预检请求和响应头协商,平衡了跨域业务需求与安全隔离。

| 类型 | 跨域访问控制机制 |
| 依托基础 | 同源策略 |
| 关键响应头 | Access-Control-Allow-Origin |
| 预检方法 | OPTIONS |
| 决定方 | 被访问的服务器 |
跨源资源共享(Cross-Origin Resource Sharing,CORS)是一套基于 HTTP 头字段的机制,让服务器能够明确声明允许哪些其他源访问自己的资源。它在浏览器同源策略的严格隔离之上,提供了一条受控的、可被服务端授权的跨域访问通道。
同源策略默认禁止脚本读取不同源的响应,但现代应用中前后端分离、调用第三方 API 等跨域需求十分普遍。若一味禁止会阻碍正常业务,若完全放开又会带来安全风险。CORS 的思路是把决定权交给被访问的服务器:由服务端通过特定响应头声明谁可以访问、能用哪些方法、能携带哪些头,浏览器据此决定是否放行,从而兼顾灵活性与安全。
CORS 通过一组请求头与响应头在浏览器和服务器之间完成协商。
CORS 广泛用于前后端分离架构和开放 API 的场景。例如部署在某域名的前端页面调用位于另一域名的后端接口,或第三方开发者调用某平台开放的 Web API,都需要服务端正确配置 CORS 响应头才能成功。合理配置 CORS 能让合法跨域调用顺畅进行,而错误的过度放开则可能引入安全隐患。
问:把允许来源设为通配符安全吗?答:对公开、无需凭据的资源可以接受,但对涉及用户身份或敏感数据的接口应严格限定具体来源,避免任意站点都能读取。
问:CORS 报错是后端还是前端的问题?答:CORS 是由浏览器强制、由服务端授权的机制,报错通常意味着服务端未正确返回允许该来源的响应头,一般需在后端配置解决。

| 类型 | 跨域访问控制机制 |
| 依托基础 | 同源策略 |
| 关键响应头 | Access-Control-Allow-Origin |
| 预检方法 | OPTIONS |
| 决定方 | 被访问的服务器 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧