同源策略

简介: 同源策略
1.什么是同源策略?
  • 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能
  • 所谓同源是指: 协议,域名,端口都相同,就是同源, 否则就是跨域
  • http://www.baidu.com:80/index.html
    协议: http/https/...
    一级域名: baiidu.com/itzb.com
    二级域名: www/study/edu/...
    端口号: 80/3306/...

// 协议+一级域名+二级域名+端口号都相同, 所以同源

http://www.baiidu.com:80/index.html

http://www.baiidu.com:80/detail.html

// 协议不同, 所以不同源, 是跨域

http://www.baiidu.com:80/index.html

https://www.baiidu.com:80/index.html

// 一级域名不同, 所以不同源, 是跨域

http://www.baiidu.com:80/index.html

http://www.itzb.com:80/index.html

// 二级域名不同, 所以不同源, 是跨域

http://www.baiidu.com:80/index.html

http://edu.baiidu.com:80/index.html

// 端口号不同, 所以不同源, 是跨域

http://www.baiidu.com:80/index.html

http://www.baiidu.com:8090/index.html

2.同源策略带来的影响
  • 在同源策略下, 浏览器只允许Ajax请求同源的数据, 不允许请求不同源的数据
  • 但在企业开发中, 一般情况下为了提升网页的性能, 网页和数据都是单独存储在不同服务器上的,这时如果再通过Ajax请求数据就会拿不到跨域数据.
3.跨域解决方案
  • jsonp
  • document.domain+iframe
  • location.hash + iframe
  • window.name + iframe
  • window.postMessage
  • flash等第三方插件





目录
相关文章
|
存储 JavaScript 容器
vuex的五个属性及使用方法示例
vuex的五个属性及使用方法示例
607 0
|
5月前
|
数据安全/隐私保护 Python
淘宝购买记录生成器,淘宝订单生成器在线制作,淘宝购买截图生成【python】
这段代码展示了如何使用Python生成模拟的淘宝订单数据,包括订单ID、购买时间、买家信息
|
开发框架 中间件 Java
如何处理跨域资源共享(CORS)的 OPTIONS 请求?
处理 CORS 的 OPTIONS 请求的关键是正确设置响应头,以告知浏览器是否允许跨域请求以及允许的具体条件。根据所使用的服务器端技术和框架,可以选择相应的方法来实现对 OPTIONS 请求的处理,从而确保跨域资源共享的正常进行。
685 61
|
弹性计算 运维 Ubuntu
|
8月前
|
域名解析 弹性计算 安全
阿里云服务器安装宝塔面板、安装网站(新手图文教程)
本文详细介绍了从注册阿里云账号到使用宝塔面板安装网站的完整流程,包括阿里云账号的企业认证、服务器购买与安全规则配置、宝塔面板的安装及网站部署等步骤。通过图文并茂的方式,帮助用户轻松完成阿里云服务器的搭建和管理。适合新手快速上手,实现网站从零到有的全过程。如果觉得有用,别忘了点赞收藏!
7069 3
阿里云服务器安装宝塔面板、安装网站(新手图文教程)
|
11月前
|
JSON 前端开发 安全
【潜意识java】前后端跨域问题及解决方案
本文深入探讨了跨域问题及其解决方案。跨域是指浏览器出于安全考虑,限制从一个域加载的网页请求另一个域的资源。
2410 0
|
Linux 数据库 容器
Centos中将UTC的时区改为CTS时区
通过以上步骤,您就可以顺利地在CentOS系统中完成时区从UTC到中国标准时间(Asia/Shanghai)的更改了。
619 1
|
开发工具 git 开发者
如何让现有的 Git 分支跟踪远程分支?
【8月更文挑战第15天】
1503 1
如何让现有的 Git 分支跟踪远程分支?
|
存储 JavaScript 前端开发
Node 版本控制工具 NVM 的安装和使用(Windows)
本文介绍了NVM(Node Version Manager)的Windows版本——NVM for Windows的安装和使用方法,包括如何安装Node.js的特定版本、列出已安装版本、切换使用不同版本的Node.js,以及其他常用命令,以实现在Windows系统上对Node.js版本的便捷管理。
Node 版本控制工具 NVM 的安装和使用(Windows)
查看用户登录时间以及命令历史
查看用户登录时间以及命令历史
457 0