什么是“同源策略”?

同源策略(Same-Origin Policy)是一种重要的安全概念,它是由网页浏览器实施的一种策略,用来限制一个源(origin)的文档或脚本如何与另一个源的资源进行交互。它是一个用来防止某些类型的网络攻击,如跨站脚本攻击(XSS)和跨站请求伪造(CSRF)的安全措施。

一个“源”由以下三个部分组成:

  1. 协议(Protocol):如httphttps
  2. 域名(Domain):如example.comlocalhost
  3. 端口(Port):如80(HTTP的默认端口)、443(HTTPS的默认端口)。

同源策略规定,如果两个页面的协议、域名和端口号都相同,则它们有相同的源。只有当这三个部分完全匹配时,一个页面上的脚本才能无障碍地访问另一个页面的DOM并与之交互,包括读取和修改另一个页面的内容。

例如,考虑以下URL:

  • http://example.com/app1
  • http://example.com/app2
  • https://example.com/app1 (不同的协议)
  • http://sub.example.com/app1 (不同的子域)
  • http://example.com:8080/app1 (不同的端口)

根据同源策略,只有第一个和第二个URL是同源的,其他的都不是,因为至少有一个部分(协议、子域或端口)不同。

同源策略限制了以下几种行为:

  • 一个源的文档或脚本无法读取或设置另一个源的文档的内容。
  • 不能对非同源的网页发起AJAX请求。
  • 无法访问非同源iframe的内容。

尽管同源策略对网络安全非常重要,但在实际应用中,开发者经常需要进行跨源资源共享。为此,可以使用一些绕过机制,如实现跨源资源共享(CORS)、使用JSONP、或在服务端设置代理等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值