猿问

前后端分离判断请求来源

如果项目前后分离,前端只能用ajax调用后端接口获取数据,那后端如何判断请求来源?

1. 通过类似token:

1.1、是要后端提供一个token接口,然后前端通过接口获取token。(接口都有了那说明谁都可以拿到token。不靠谱)
1.2、后端提供token + 请求域名白名单。(通过HTTP_REFERER 获取请求域名来源进行判断....不太靠谱)

上面是我想到的办法。还有没有相对安全的方法,麻请提供思路


饮歌长啸
浏览 2111回答 2
2回答

精慕HU

前后端分离之后,判断来源的目的基本都是保障安全性,只是鉴定来源的话request header里面的origin是不是可以用一下?然后通过token、jwt等一系列的鉴定机制,再试试?但是个人觉得只要这个token能带到客户端,就有危险,所以分离之后为了安全,更倾向于以下方案1、前后端分离之后,前端使用nginx作为服务器,并且反向代理到后端接口,注意这里反向代理到后端服务器的内网IP+端口上去,并且关掉后端域名的外网映射2、接口服务器上接到请求之后,可以查一下X_forward_for的ip链路,看下中间的代理IP是不是自己nginx服务器的,加个白名单3、如果实在需要开放外网映射去做一些诸如授权、支付类的功能的话,nginx层依旧保持内网ip转发,添加域名访问的白名单,包括域名和ip大致就这样~

江户川乱折腾

token 后端提供的token接口是要验证用户信息的不是说我一个get请求过来就给你一个tokentoken的信息当中可以包含 你的客户端来源 基本用户信息 过期时间等
随时随地看视频慕课网APP

相关分类

Html5
我要回答