如果项目前后分离,前端只能用ajax调用后端接口获取数据,那后端如何判断请求来源?1. 通过类似token:1.1、是要后端提供一个token接口,然后前端通过接口获取token。(接口都有了那说明谁都可以拿到token。不靠谱)
1.2、后端提供token + 请求域名白名单。(通过HTTP_REFERER 获取请求域名来源进行判断....不太靠谱)上面是我想到的办法。还有没有相对安全的方法,麻请提供思路
2 回答
精慕HU
TA贡献1845条经验 获得超8个赞
前后端分离之后,判断来源的目的基本都是保障安全性,只是鉴定来源的话request header里面的origin是不是可以用一下?然后通过token、jwt等一系列的鉴定机制,再试试?
但是个人觉得只要这个token能带到客户端,就有危险,所以分离之后为了安全,更倾向于以下方案
1、前后端分离之后,前端使用nginx作为服务器,并且反向代理到后端接口,注意这里反向代理到后端服务器的内网IP+端口上去,并且关掉后端域名的外网映射
2、接口服务器上接到请求之后,可以查一下X_forward_for的ip链路,看下中间的代理IP是不是自己nginx服务器的,加个白名单
3、如果实在需要开放外网映射去做一些诸如授权、支付类的功能的话,nginx层依旧保持内网ip转发,添加域名访问的白名单,包括域名和ip
大致就这样~
江户川乱折腾
TA贡献1851条经验 获得超5个赞
token 后端提供的token接口是要验证用户信息的
不是说我一个get请求过来就给你一个token
token的信息当中可以包含 你的客户端来源 基本用户信息 过期时间等
- 2 回答
- 0 关注
- 2110 浏览
添加回答
举报
0/150
提交
取消