同源策略的限制,没有同源策略会怎么样?
目录
- 同源策略
- 同源策略的执行
- 说说同源策略的限制
- 没有同源策略的危害
同源策略
之前学习跨域方式的时候介绍过同源策略,但是学习真的不能知其一而不知其意,当时只是简单的了解,昨天面试随着面试官加深的询问没有同源策略会怎样,才发现自己还是没有真正的明白,今天简单记录一下0.0 Salute!
九种跨域方式及实现原理:https://blog.csdn.net/f944913628/article/details/114288543?spm=1001.2014.3001.5501
同源策略:是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSRF等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。
同源策略的执行
所有的同源策略都是由浏览器执行的,所有的限制都是因为浏览器的作用,这是因为浏览器为保护用户隐私而才去的措施。
说说同源策略的限制
1、不能获取不同源的cookie,LocalStorage 和 indexDB
如果不同源可以获取用户的cookie信息等,被恶意的人加以操作,岂不是很可怕,所以这是为了防止恶意网站获取用户其他网站的cookie数据做出的限制。
2、不能让获取非同源的DOM
举个栗子:如果没有这一条,恶意网站可以通过iframe打开银行页面,可以获取dom就相当于可以获取整个银行页面的信息。
3、不能发送非同源的ajax请求。(准确说应该是可以向非同源的服务器发起请求,但是返回的数据会被浏览器拦截)
这里引用一下别人写的话说的很好:大佬
为什么ajax访问不能跨域?这得先说说cookie
1.客户向A网站的服务器发送登录请求,并携带账号密码数据
2.A网站的服务器校验账号密码正确后,返回响应并给本地添加了Cookie
3.之后客户再次向A网站发起请求会自动带上A网站存储在本地的cookie
4.A网站的服务器从cookie中获取账号密码数据后,返回登陆成功界面。
假设有一个黑客叫做小黑,他从网上抓取了一堆美女图做了一个网站,每日访问量爆表。
为了维护网站运行,小黑挂了一张收款码,觉得网站不错的可以适当资助一点,可是无奈伸手党太多,小黑的网站入不敷出。
于是他非常生气的在网页中写了一段js代码,使用ajax向淘宝发起登陆请求,因为很多数人都访问过淘宝,所以电脑中存有淘宝的cookie,不需要输入账号密码直接就自动登录了,然后小黑在ajax回调函数中解析了淘宝返回的数据,得到了很多人的隐私信息,转手一卖,小黑的网站终于盈利了。
如果跨域也可以发送AJAX请求的话,小黑就真的获取到了用户的隐私并成功获利了!!!
为了防止小黑这种黑客侵犯用户的隐私,同源政策就出现了。 拯救了银河系!!!
用form表单提交到不同源的网页是被允许的,因为 form 提交到另一个域名之后,原页面的脚本无法获取新页面中的内容,所以浏览器认为这是安全的。
而 AJAX 是可以读取响应内容的,因此浏览器不能允许你这样做。如果你细心的话你会发现,其实请求已经发送出去了,你只是拿不到响应而已。
所以浏览器这个策略的本质是,一个域名的 JS ,在未经允许的情况下,不得读取另一个域名的内容。但浏览器并不阻止你向另一个域名发送请求。
没有同源策略的危害
如果没有同源策略的作用,任意站点之间可以可以操作资源,当你在访问一个合法网站的时候,又打开了一个恶意网站,包含了恶意脚本,恶意脚本便可以操作合法网站上的一切资源。
同源策略的限制,没有同源策略会怎么样?相关推荐
- 计算机无法打开策略,windows电脑本地计算机策略打不开该怎么解决?
最近在修电脑的过程中打开主策略,进入本地计算机策略时候,打不开提示MMC无法创建管理单元,MMC未能创建管理单元,管理单元可能未正确安装.这多半和我们的变量设置有关.下面小编为大家分析下解决办法.希望 ...
- 如何恢复默认域策略和默认域控制器策略
如果需要将默认域策略和默认域控制器策略恢复为起始状态,可以使用Dcgpofix.exe.这是一个命令行程序,内置在2008 R2中.要恢复默认域策略,请运行以下命令:Dcgpofix /target: ...
- 投资计算机方面的策略构建,金融投资简单的策略分享和构建策略的基本思路
市场投资除了基本的理念,技术分析之外,还需要构建一套完善的交易系统,其中包括:风险控制.资金管理.心态控制.情绪管理,有效且能执行的交易策略.不少朋友认为交易系统就是一套技术分析体系,其实这里面也没有 ...
- php 策略模式实现原理,php 策略模式原理与应用深入理解
php 策略模式原理与应用深入理解,策略,可以用,接口,简单,算法 php 策略模式原理与应用深入理解 易采站长站,站长之家为您整理了php 策略模式原理与应用深入理解的相关内容. 本文实例讲述了ph ...
- dubbo调用失败策略_面试官:dubbo负载均衡策略,集群容错策略,动态代理策略有哪些...
面试官心理分析 继续深问吧,这些都是用 dubbo 必须知道的一些东西,你得知道基本原理,知道序列化是什么协议,还得知道具体用 dubbo 的时候,如何负载均衡,如何高可用,如何动态代理. 说白了,就 ...
- 计算机用户名密码策略,设置域用户帐户密码策略
设置域用户帐户策略 从安全和易用考虑,普通域用户的帐户策略必须满足一下要求: u 密码长度至少3位 u 最长使用期限60天 u 密码必须符合复杂性要求 u 密码最短使用0天 u 帐户锁定阀值7次 u ...
- java策略设计模式_Java中的策略设计模式
java策略设计模式 策略设计模式是一种行为模式,其中我们有多种算法/策略来完成一项任务,所使用的算法/策略留给客户选择. 各种算法选项封装在单独的类中. 在本教程中,我们将学习在Java中实现策略设 ...
- 策略模式示例代码_策略设计模式示例
策略模式示例代码 本文是我们名为" Java设计模式 "的学院课程的一部分. 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们. 您将了解模式如此重要的 ...
- java状态模式和策略模式_Java状态和策略设计模式之间的差异
java状态模式和策略模式 为了在Core Java应用程序中正确使用状态和策略设计模式,对于Java开发人员清楚地了解它们之间的区别很重要. 尽管状态和策略设计模式的结构相似,并且都基于开放式封闭设 ...
- 工厂设计模式和策略设计模式_设计模式:策略
工厂设计模式和策略设计模式 这次我想谈谈策略设计模式 . 通过这种方式,我开始撰写有关行为设计模式的文章. 这种模式表示对象之间的某些交互模式,以使代码更灵活且组织得更好.此方法的最本质点是对象之间的 ...
最新文章
- 为什么阿里P8、P9技术大牛反复强调“结构化思维”?
- audio标签控制音量_html中audio标签的使用
- 破解RSA的一些技术
- 战斗机各种世界之最,涨知识了。。。
- 深入::first-letter的研究
- JAVA编程中的类和对象
- FTP文件同步(java版)
- 商业计划书,有什么idea,模板帮你来
- DSP实验报告—实验2 编写一个以C语言为基础的DSP程序
- 记录一个 Python 的 re.match() 的小坑
- AutoML 是否被过度炒作?
- JAVA中初始化线程的两种方法_java中最简单的方式新起一个线程
- 运行Moblin Live映像 - for Mobin v2.1
- 产业分析:光伏产业发展路线图
- Android Amazon S3 功能接入
- HDU 5643 King's Game 【约瑟夫环】
- 单元测试总结反思_英语单元测试教学反思范文
- 何晓理(风过无痕)-从85年开始的学习经历
- 自学成才!16个非常优秀的在线教育网站
- Microsoft Office PPT 编程(VBA)学习 (不定时更新,正在学习 ing)