访问接口跨域请求

一、跨域

1、当两个域具有相同的协议(如http), 相同的端口(如80),相同的host(如www.google.com),那么我们就可以认为它们是相同的域(协议,域名,端口必须相同)。
2、跨域就指着协议,域名,端口不一致,出于安全考虑,跨域的资源之间是无法交互的(例如一般情况跨域的JavaScript无法交互,当然有很多解决跨域的方案)

二、导致跨域的原因:同源策略

跨域的出现是因为浏览器的同源策略的限制,出发点是为了安全起见

同源策略的方向一是针对接口的请求,二是针对Dom的查询。

1、没有同源策略限制的接口请求

我们一般用cookie来处理登录场景,目的是让服务端知道谁发出的这次请求。如果你请求了接口进行登录,服务端验证通过后会在响应头加入Set-Cookie字段,然后下次再发请求的时候,浏览器会自动将cookie附加在HTTP请求的头字段Cookie中,服务端就能知道这个用户已经登录过了。
假如我们在一个涉及到我们隐私的正规网站中访问,突然不知道从哪弹出一个链接,不管是有意还是无意,我们点开了这个莫名其妙的网址(恶意网站),由于没有同源策略的限制,它向我们正经的网址中发起了请求,由cookie验证我们可以知道“服务端验证通过后会在响应头加入Set-Cookie字段,然后下次再发请求的时候,浏览器会自动将cookie附加在HTTP请求的头字段Cookie中”,这样一来,这个恶意网站就相当于登录了我们的账号,有了我们的个人信息,这是很危险的,他们可以随意使用我们的个人信息,后果可想而知.....这种跨站请求伪造就是我们常说的CSRF攻击
看了这波CSRF攻击我在想,即使有了同源策略限制,但cookie是明文的,还不是一样能拿下来。于是我看了一些cookie相关的文章聊一聊 cookieCookie/Session的机制与安全,知道了服务端可以设置httpOnly,使得前端无法操作cookie,如果没有这样的设置,像XSS攻击就可以去获取到cookieWeb安全测试之XSS;设置secure,则保证在https的加密通信中传输以防截获。

2、没有同源策略限制的Dom查询

某天我们突然收到一条短信,说自己的某账号出现非法登录,需要紧急修改,慌乱之下我们匆匆点击去一顿修改(包含账号及密码的验证),殊不知我们这是在主动送人头【由于没有同源策略的限制,恶意网站是可以拿到别的正经网站的dom,即能获取到我们的账户信息】,被别人坑害了,还暗自庆幸自己机智.....

了解没有同源策略限制的危害后就知道还是有必要增加跨域限制的

三、处理跨域

1、情况描述

Web项目中调用一个与Web不同域名与端口的接口,出现跨域

2、原代码及结果

(1)Web项目的请求

(2)接口的内容

(3)访问结果:跨域限制

3、处理(在后台处理)

(1)在接口里增加以下代码:表示所有的域都可以访问

response.setHeader("Access-Control-Allow-Origin", "*");

 

4、访问结果:成功跨域并返回结果

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值