首页 > 前端开发 > 正文

web前端开发基础同源策略 同源策略

2023-09-29 11:55:30 | 我爱编程网

前端开发是很多朋友有关注的类型,那么web前端开发基础同源策略 同源策略,我爱编程网为大家带来了相关文章,希望给大家提供参考。

web前端开发基础同源策略 同源策略

同源策略

同源策略是在1995年,由Netscape公司而引入浏览器的,目前,所有的浏览器都在实行这个政策,它的最初的含义是指,A网页设置Cookie,耳B网页不能打开,除非这两个网页是“同源”,而所谓的“同源”指的是“三个相同”

简单来说:同源策略限制从一个源(协议、域名、端口)加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在的恶意文件的关键的安全机制。如果源不一样就是协议、域名、端口有一个不一样的话,就是非同源策略,就跨域了。

举例来说 这个网址,它的协议是 , 而他的域名是 www.example.com , 端口是80(端口号默认是可以省略的) 它的同源情况如下:

同源策略出现的目的是为了保护用户的信息安全,防止有恶意的网站窃取用户的数据。

你可以设想一个这样的情况:A网站是一家银行,在用户登录以后,A网站在用户的使用机器上设置了一个Cookie,这其中包含了一些隐私信息(比如存款金额),而在用户离开A网站之后,又去访问了B网站,而这个时候如果没有同源策略,B网站就可以读取到A网站的Cookie,那么用户的信息就会泄露,更可怕的是,Cookie往往是用来保存用户的登录状态,如果用户没有退出登录,其他的网站就可以冒充用户,为所欲为,因为,浏览器同事还规定,提交表单是不受同源策略的限制。

所以,从这里可以看出来,同源策略是必需的,否则Cookie可以共享,那互联网就没有什么安全性可言了。

在随着互联网的发展,同源策略越来越严格,就目前而言,如果非同源,共有三种行为受到限制。

这个链接很全 相关链接

web前端开发基础同源策略 同源策略我爱编程网

js同源策略是什么


对于任何基于WEB的应用,最重要的就是安全性.JS中有各种安全检查以防止恶意脚本攻击你的机器,其中一些特定的安全手段在各种浏览器中都有采用.如:Mozilla有个完全独特的完全模型,涉及到了签署脚本和加强特权.我们要知道哪些安全手段是所有浏览器通用的,哪些是特定浏览器的.这样就能创建更安全的JS脚本.

同源策略;
JS只能与同一个域中的页面进行通讯.如:运行在 ;上的脚本不能和;的浏览器窗口或iframe 进行交互.不能访问它的cookie,接收它的HTTP响应等(但它可以向任何其他源发送HTTP请求);AJAX 和 webservice 也受此策略管束.这种手段就叫同源策略;
两个脚本被认为是同源的条件是:
协议相同(比如都是)
端口相同(通常都是80)
域名相同
如果这三个条件中有任何一条不满足,就不允许两个脚本进行交互.如:www.mydomain.com上的脚本不能访问video.mydomain.com上的页面 ,因为两者的域名不同,虽然后者是前者的子域.同样,它也不能访问www.mydomain.com:8080上的页面 ,因为端口不同,也不能访问about:blank 因为协议不同(后者不是)
同源策略带来的影响:
它影响了与BOM,DOM间的交互.如:不可以访问不同来源的任何页面的document对象,也就是说不能访问其中任何DOM结构.如:
页面上有两个iframe 分别引用了不同源;
alert(frames[1].location.href);
alert(frames[1].document.location.href);//失败
window 和 document 都有一个 location 对象的属性.如果在与框架页不同源的页面中运行这两行代码,第二行会报错.

web前端开发基础同源策略 同源策略

web前端面试题@二(Keeplive、V-show和v-if的区别、同源策略及跨域)

在vue中,我们使用component内置组件或者vue-router切换视图的时候,由于vue会主动卸载不使用的组件,所以我们不能保存组件之前的状态,而我们经常能遇到需要保存之前状态的需求,例如:搜索页(保存搜索记录),列表页(保存之前的浏览记录)等等。

Keep-alive是一个vue的内置组件,它能将不活动的组件保存下来,而不是直接销毁,当我们再次访问这个组件的时候,会先从keep-alive中存储的组件中寻找,如果有缓存的话,直接渲染之前缓存的,如果没有的话,再加载对应的组件。

作为抽象组件,keep-alive是不会直接渲染在DOM中的。

Keep-alive提供了三种可选属性

Include-字符串或数组或正则表达式。只有名称匹配的组件被缓存。

Exclude -字符串或数组或正则表达式。名称匹配的组件不会被缓存。

Max -数字类型。表示最多可以缓存多少组件实例。

Keep-alive提供了两个生命钩子,分别是activated与 deactivated。

因为Keep-alive会将组件保存在内存中,并不会销毁以及重新创建,所以不会重新调用组件的created等方法,需要用activated与deactivated这两个生命钩子来得知当前组件是否处于活动状态。

V-show有较高的渲染成本,

V-if有较高的切换成本。

V-if是真正的条件渲染,确保切换过程中条件内的事件监听器和子组件适当的被销毁和重建。

V-show的元素始终被渲染并保存在dom中,操作的只是display属性控制演示影藏。

源(origin)—— 就是协议、域名和端口号。若地址里面的协议、域名和端口号均相同则属于同源。

同源策略——同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。所以a.com下的js脚本采用ajax读取b.com里面的文件数据是会报错的。

不受同源策略限制的

1.页面中的链接,重定向以及表单提交是不会受到同源策略限制的。

2.跨域资源的引入是可以的。但是js不能读写加载的内容。如嵌入到页面中的<script src="..."></script>,<img>,<link>,<iframe>等。

跨域——只要协议、域名、端口号有一个不同就是跨域。

跨域的原因?(只做了解)

跨域问题来源于JavaScript的同源策略,即只有 协议+主机名+端口号(如存在)相同,则允许相互访问。为了防止某域名下的接口被其他域名下的网页非法调用,是浏览器对JavaScript施加的安全限制。也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源。跨域问题是针对JS和ajax的,html本身没有跨域问题,比如a标签、script标签、甚至form标签(可以直接跨域发送数据并接收数据)等。

1、 Jsonp——

利用script标签可跨域的特点,在跨域脚本中可以直接回调当前脚本的函数。jsonp是一种常用的跨域手段,和反向代理,服务端做跨域处理相比,jsonp更显得方便轻巧 jsonp的缺点只能发送get请求。因为script只能发送get请求需要后台配合。此种请求方式应该前后端配合,将返回结果包装成callback(result)的形式。

2、 Cors——

服务器设置HTTP响应头中Access-Control-Allow-Origin值,解除跨域限制。CORS 是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing),他允许浏览器向跨源服务器发送XMLHttpRequest请求,从而克服 AJAX 只能同源使用的限制

缺点是:目前所有最新浏览器都支持该功能,但是万恶的IE不能低于10

Access-Control-Allow-Origin 这个字段是必须的,表示接受那些域名的请求(*为所有)、Access-Control-Allow-Credentials 该字段可选, 表示是否可以发送cookie、Access-Control-Expose-Headers 该字段可选,XHMHttpRequest对象的方法只能够拿到六种字段: Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma ,如果想拿到其他的需要使用该字段指定。

3、反向代理(Reverse Proxy){前端独立就能解决的跨域方案}——

指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

以上就是我爱编程网为大家带来的web前端开发基础同源策略 同源策略,希望能帮助到大家,了解更多相关信息,敬请关注我爱编程网。
与“web前端开发基础同源策略 同源策略”相关推荐
web前端开发基础同源策略 web前端面试题@二(Keeplive、V-show和v-if的区别、同源策略及跨域)
web前端开发基础同源策略 web前端面试题@二(Keeplive、V-show和v-if的区别、同源策略及跨域)

js同源策略是什么对于任何基于WEB的应用,最重要的就是安全性.JS中有各种安全检查以防止恶意脚本攻击你的机器,其中一些特定的安全手段在各种浏览器中都有采用.如:Mozilla有个完全独特的完全模型,涉及到了签署脚本和加强特权.我们要知道哪些安全手段是所有浏览器通用的,哪些是特定浏览器的.这样就能创建更安全的JS脚本.同源策略;JS只能与同一个域中的页面进行通讯.如:运行在;上的

2023-09-29 11:55:17
web前端开发策略 初学者如何迅速学习web前端开发?
web前端开发策略 初学者如何迅速学习web前端开发?

初学者如何迅速学习web前端开发?学习web前端不怕没哟基础,就怕没有方向,推荐给你web前端学习的路线图:阶段1.前端核心基础HTML+_CSS核心、JavaScript基础语法、JavaScript面向对象、JavaScriptDOM和BOM编程、jQuery框架阶段2.HTML5+CSS3+移动端核心HTML5新特性、Canvas专列、CSS3新特性、C

2023-09-03 18:30:19
web前端页面开发基础 WEB前端开发教程 WEB前端开发入门攻略
web前端页面开发基础 WEB前端开发教程 WEB前端开发入门攻略

web前端开发需要掌握哪些技术?web前端开发师是一个非常新兴的职业,在计算机行业中,web前端得到很大的重视。随着计算机行业的不断发展,无论是在企业还是个人中,web前端技术都得到广泛的使用。那么在学习web前端开发需要掌握哪些技术呢,应该如何进行学习?下面电脑培训为大家介绍web前端学习需要掌握的技术。一、web前端是做什么的随着互联网的不断发展,web前端开发也发生了很大

2023-09-11 03:05:14
利用web前端基础开发galgame WEB前端开发教程 WEB前端开发入门攻略
利用web前端基础开发galgame WEB前端开发教程 WEB前端开发入门攻略

学习web前端能做游戏开发吗?能。游戏开发分为营销类或休闲类小游戏开发(如:微信小程序中的飞机大战)和大型游戏开发(如:王者荣耀),游戏开发是在编程领域中和前端并驾齐驱的开发类岗位,只不过游戏开发的复杂度要远远高于前端开发,大型游戏的后端通常是C/C++来实现,大型游戏的前端大部分使用的是Unity3d,它的主要语言是C#,小游戏也可以使用前端技术中的Canvas和WebGL来开发,或者是微

2023-09-26 16:17:10
编程培训班推广策略 如何运用培训管理系统在K12编程培训市场闯出一片天?
编程培训班推广策略 如何运用培训管理系统在K12编程培训市场闯出一片天?

少儿编程培训机构怎么做市场活动少儿编程培训机构怎么做市场活动,下面让小编带大家了解一下吧:一、少儿编程培训机构怎么做市场活动刚才提到了,由于经济、教育发展水平的差异,在一些地区已经接受度很高的少儿编程,再另外一些地区却认知度依然较低,因此少儿编程培训机构要想招生,就必须做一些市场活动和营销来增加家长对于少儿编程的关注度。少儿编程培训机构可以做的市场活动有:1、与当地学校谈

2023-08-25 02:02:50
web前端开发策划 前端设计是什么
web前端开发策划 前端设计是什么

web前端开发专业能做什么工作?WEB应用程序设计专业。毕业后能够从事网站应用程序开发、网站维护、网页制作、软件生产企业编码、软件测试、系统支持、软件销售、数据库管理与应用、非IT企事业单位信息化。2、可视化程序设计专业。毕业后能够从事软件企业桌面应用开发、软件生产企业编码、软件测试、系统支持、软件销售、数据库管理与应用开发等工作。3、数据库管理专业。毕业后能够从事企、事业单位数据

2023-09-07 19:35:26
web前端开发的基本代码 WEB前端开发教程 WEB前端开发入门攻略
web前端开发的基本代码 WEB前端开发教程 WEB前端开发入门攻略

web前端开发都需要学习哪些知识?HTMLHTML是构成网页的骨架,所有的信息显示都要靠HTML实现。一个网页可以没有CSS代码,没有JavaScript代码,但绝对不能没有HTML代码,HTML是web页面的核心。现在HTML发展到了HTML5,新版本增加了很多特性,使得HTML功能更加完善。CSSCSS在一个网页中起到的作用就像是一个化妆师,它可以让网

2023-10-08 08:47:51
最新web前端开发 WEB前端开发入门攻略
最新web前端开发 WEB前端开发入门攻略

web前端开发的发展趋势?趋势一:更加移动优先响应式设计显然是目前Web前端开发领域的主要趋势之一,并且这一趋势在未来还将持续一段时间。虽然现在的响应式设计大部分还是以PC版优先,然而如果有一天我们把PC版放到比移动版次要的位置上,也没有什么好奇怪的。因为,目前许多Web前端开发者已经开始转向以移动优先方案来做他们的响应式设计和开发,这就象征着一个重大转变,值得我们跟进的。趋势

2023-09-03 09:46:39