美文网首页
同源、跨域

同源、跨域

作者: xingkong_s | 来源:发表于2018-04-24 11:07 被阅读9次

默认端口
http:80 https:443 ftp: 21
协议 认证/登陆信息 域名 路径 ?查询字符串 #hash

hash 改变的时候 会跳转到id为 hash 值的元素位置 没有刷新页面 不会发起请求 只是改变文档内部的东西
对服务器没用 浏览器不会把 hash 这部分 发送给服务器
请求里看不到 hash http 不会传

源是指 协议 域名 端口号
指令: location origin
//ie下不支持
if(location.origin===undefined){
location.origin=location.protocol+location.hostname+":"+location.port
}

.protocol
.hostname域名
.port端口

在访问一个域名的时候,会到服务器请求他的ip 也可以手动指定hosts
将一个域名固定到一个ip

可以在hosts 文件里 写127.0.0.1 www.baidu.com
本地开一个服务器 默认为127.0.0.1:3000
然后清除缓存之后 地址栏 输入 http:www.baidu.com:3000 就可以映射百度为本地服务器的域名了

chrome://net-internals/#sockets
清除缓存

模拟 a.com的js 访问b.com的资源
因为本地的服务器打开后 127.0.0.1:3000 这个ip就存在了
可以把a.com和b.com 都指向这个ip 端口改为80
在 test/index.js文件里改端口
80端口只有系统管理员身份才能启动
linux可以用sudo +启动服务命令来监听80端口
win用使用管理员身份运行命令行

a.com 用ajax来请求b.com的资源
会提示 错误

可以引用 但是不能用ajax读

可以跨站的引用 js css png 不属于同源策略
你那ajax来读他的内容 就不可以

a.com 引用(下载 )自 b.com/main.js 不能读写 b.com的资源
因他已经属于a.com 的脚本了
如果 b.com/main.js里 有请求b.com里的其他文件 则属于跨域 报错

降域
// iframe 形式的跨域 或者 有同样后缀的域名

child.a.com 只能设置域名为a.com
把域名变成一样的
我们的协议一样 端口一样 只要改变域名 就可以同源
每个页面都加一句话 document.domain='a.com'
两个iframe就可以互相调用对方的数据和方法了 不过是在两个iframe加载完 可以把回调函数 包含在 window.onload=function(){...}里

问题是 如果 所有页面都改写成同样的域名
那么 任何一个子域名被攻击注入 可能就会影响 主域名里的重要数据泄露
引起大面积的安全问题

更改域名时:
可以访问他的上一级或上上级域名 xxx.child.a.com 可以 改为 child.a.com 或者a.com
不能往回改 当改为a.com了 就不能改回 child.a.com 了

  1. 接受一个 callback 的名字 : xxx
  2. 返回JS的内容,调用 xxx

JSONP 就是动态的 script

a.com 定义了函数xxx
请求了b.com里的data.js
data.js的参数是xxx,xxx隐射到文件里的xxx ,真正的数据呢是“a”:“1”
把数据传到函数xxx,让函数xxx调用
a.com已埋好了坑 调用a.com里的xxx方法

1.接受一个callback的名字 xxx
2.返回js的内容,调用xxx

本身没有安全性可言; 只能get 不能post

解决jsonp 的安全问题 约定一个别的域名拿不到的东西 比如cookie
c.com是拿不到a.com的cookie的

jsonp有个token变量

相关文章

  • 网站跨域解决方法

    关键词 同源策略 什么是跨域 跨域,请求不同源。同源指协议、域名、端口都相同,只要有一样不相同就是跨域了。 同源限...

  • JSONP、CORS、跨域

    跨域 同源:两个文档同源需满足:协议、域名、端口相同跨域:不同域之间相互请求资源,就算作“跨域“。js进行DOM操...

  • 通过script标签实现跨域

    跨域 什么是跨域? 跨域问题是由于javascript语言安全限制中的同源策略造成的。同源策略是由Netscape...

  • H5跨域访问

    跨域访问是源于浏览器的同源策略而引申出来的概念 1、先了解什么是同源策略和跨域访问 同源策略、跨域解决方案 - R...

  • 跨域

    什么是跨域? 说跨域之前先要谈几个概念。跨域问题要从同源策略谈起,那什么是同源策略呢?同源是下面三项都相同,缺一不...

  • 有关跨域的相关问题和方法

    跨域是什么 同源策略 在讲解什么是跨域之前先要清楚什么是同源策略,“同源政策”(same-origin polic...

  • H5 知识点 - 收藏集 - 掘金

    跨域解决方案总结 - 前端 - 掘金为什么需要跨域? 就得先知道同源策略. 同源策略 同源策略是为了保证数据的安全...

  • 同源策略和跨域

    什么是跨域问题? 为什么会出现跨域问题? 因为浏览器的同源策略(同源指的是:协议+域名+端口相同)。 同源策略是浏...

  • js常见跨域解决方案

    参考:前端常见跨域解决方案(全) 跨域,什么是“域”? 这里就要先说说同源策略了。所谓同源是指"协议+域名+端口"...

  • 面试官:那有没遇到跨域问题,如何解决跨域?

    面试官:有没遇到跨域问题,如何解决跨域? 一、同源策略 谈到跨域问题,要先谈浏览器的同源策略。 二、解决方案 1、...

网友评论

      本文标题:同源、跨域

      本文链接:https://www.haomeiwen.com/subject/nkwdlftx.html