浏览器跨域的配置

news/2024/10/17 22:12:22/

目录

1、前言

2、同源策略

3、跨源数据存储访问

4、浏览器跨域设置

4.1 版本号(49.x.x.x.x)之前的跨域设置

4.2 版本号(49.x.x.x.x)之后的跨域设置

5、批处理跨域设置

5.1 windows 操作系统。

5.2 Mac 操作系统


1、前言

在我们进行前端开发的时候,我们请求的后端的接口可能是在不同的域名之下,就会产生跨域的问题,跨域是浏览器本身从安全策略(同源策略)考虑的,默认会限制跨域的请求,因为使用不当,可能会导致一些安全问题,包括用户隐私数据的泄露,而在实际开发中,我们可能需要有跨域的需求,那么从前端的角度怎么去解决呢?

2、同源策略

同源策略是一个重要的安全策略,它用于限制一个源的文档或者它加载的脚本如何能与另一个源的资源进行交互。

它能帮助阻隔恶意文档,减少可能被攻击的媒介。例如,它可以防止互联网上的恶意网站在浏览器中运行 JS 脚本,从第三方网络邮件服务(用户已登录)或公司内网(因没有公共 IP 地址而受到保护,不会被攻击者直接访问)读取数据,并将这些数据转发给攻击者。

同源的定义:

如果两个 URL 的协议、端口(如果有指定的话)和域名都相同的话,则这两个 URL 是同源的。

  • 协议相同
  • 端口相同
  • 域名相同

下面给出了与以下URL的源进行对比的示例:百度安全验证https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_9477925471385309700%22%7D&n_type=-1&p_from=-1

URL是否同源原因
https://www.baidu.com域名不同
https://mbd.baaidu.com/other/aaa三者相同,只是路径不同
http://www.baidu.com协议不同
https://mbd.baaidu.com:8081/other/aaa端口不一样

3、跨源数据存储访问

访问存储在浏览器中的数据,如 Web Storage和  IndexDB ,是以源进行分割的。每个源都拥有自己单独的存储空间,一个源中的 JavaScript 脚本不能对属于其他源的数据进行读写操作。

Cookie 使用不同的源定义方式。一个页面可以为本域和其父域设置 cookie,只要是父域不是公共后缀(public suffix)即可。Firefox 和 Chrome 使用 Public Suffix List 检测一个域是否是公共后缀。当你设置 cookie 时,你可以使用 DomainPathSecure 和 HttpOnly 标记来限定可访问性。当你读取 cookie 时,你无法知道它是在哪里被设置的。即使只使用安全的 https 连接,你所看到的任何 cookie 都有可能是使用不安全的连接进行设置的。

4、浏览器跨域设置

这里讲解的默认浏览器为chome 浏览器。

4.1 版本号(49.x.x.x.x)之前的跨域设置

操作步骤如下:

1、在桌面找到chrome 浏览器图标,右键,属性标签页中。

2、在目标输入框中加上 --disable-web-security即可。

然后双击打开测试下,如下图所示,则为添加成功。

​ 

4.2 版本号(49.x.x.x.x)之后的跨域设置

对于49之后的版本,需要指定在跨域的时候,对应用户的数据需要进行指定。主要是为了在跨域的时候用户隐私数据的安全,所以进行指定。 

操作步骤如下:

1、新建一个目录,例如:C:\chrome_data

2、在桌面找到chrome 浏览器图标,右键,属性标签页中。

3、在目标输入框中加上 --disable-web-security --user-data-dir=C:\chrome_data即可。

然后双击打开测试下,如下图所示,则为添加成功。

5、批处理跨域设置

如果我们不想每次打开浏览器都是跨域打开,而只是在开发项目中使用,我们可以写一个批处理,双击运行就会打开一个已设置跨域的浏览器。而这样我们就不需要改变浏览器属性标签页中的参数,写在批处理中即可。

5.1 windows 操作系统。

假设chrome 的安装路径为 C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

新建一个文件名为 chrome_cross.bat,文件内容如下所示:

Start /d "C:\Program Files (x86)\Google\Chrome\Application\" chrome.exe --disable-web-security --user-data-dir=C:\chrome_data

测试:双击点击“chrome_cross.bat”文件,如下所示,即为成功:

5.2 Mac 操作系统

假设chrome的安装路径为 /Applications/Google/Chrome.app

新建一个文件名为:chrome.command,文件内容如下所示:

open -n /Applications/Google\ Chrome.app/ --args --disable-web-security  --user-data-dir=/Users/jiang/Documents/chromeTempCross

 测试:双击点击“chrome_cross.bat”文件,如下所示,即为成功:

Tips:这只是在开发中的一种临时方案,也是最简单的一种方式,当然还有其他方式也可解决,所示在实际开发中,我们还是需要有web安全的这种意识。


http://www.ppmy.cn/news/133691.html

相关文章

数组的常用方法有哪些

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、数组的常用方法有哪些?增删改查排序方法转换方法迭代方法 前言 提示:这里可以添加本文要记录的大概内容: 例如&#x…

【一起啃书】《机器学习》第八章 集成学习

文章目录 第八章 集成学习8.1 个体与集成8.2 Boosting8.3 Bagging与随机森林8.4 结合策略8.5 多样性 第八章 集成学习 8.1 个体与集成 集成学习通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统、基于委员会的学习等,下面是集成学习的…

MySQL-1-基础

MySQL 简介 mysql-server #提供服务 mysql-client #提供SQL命令 官网地址:https://dev.mysql.com/downloads/ https://downloads.mysql.com/archives/community/查看帮助文档 mysql> ? contents一、安装MySQL 1.1、二进制安装mysql5.7-linux 安装前准备 sh…

基于Python的RESTful API设计:使用Falcon框架

一、引言 RESTful API设计是现代Web和移动应用开发中的重要组成部分。在Python中,有很多库和框架可以帮助我们创建RESTful API,如Flask、Django等。然而,这些框架在设计上倾向于全栈Web开发,可能包含许多我们在创建RESTful API时…

2004药企100强最新排行剖析

2004药企100强最新排行剖析 2004年09月28日 10:13 让无数药企陷入不眠之夜的“2004医药企业100强”终于出台!   中国医药企业管理协会秘书长康泓告诉记者,从今年3月起,企业管理协会便开始着手100强的排名工作,历时近半年&…

中国软件公司排行~中国电子信息企业排行~

2007中国软件企业排行榜 2008年05月29日 星期四 16:12 1 华为技术有限公司 622360 2 中兴通讯股份有限公司 601331 3 海信集团有限公司 448641 4 UT斯达康通讯有限公司 386763 5 海尔集团公司 333664 6 神州数码(中国)有限公司 311862 7 浙江浙大网新科技股份有限公司 288781 8…

横山法则(转载)

自发的才是最有效的,激励员工自发地工作 横山法则 日本社会学家横山宁夫横山法则:自发的才是最有效的,激励员工自发地工作 [ 编辑] 横山法则实例 有自觉性才有积极性,无自决权便无主动权。 在管理的过程中,我们常常过…

AWE 2017盛大开幕,跨界生态圈刷新未来

AWE 2017于今日在上海盛大开幕。 随着中国家电及消费电子业转型升级的成果不断涌现,智能创新技术与生态建设布局处于国际领先地位。中国,已经跃升为全球家电、消费电子、智能领域的创新前沿阵地。中国“十三五”的第二年,供给侧结构性改革深…