前后端分离的架构,如何保障api的安全?

买房动力十足 2017-07-05 08:43:51
前后端分离的架构,如何保障api的安全?
1、前端用vue写的,直接放在nginx下面

后端提供api 给前端访问,



现在是api安全这块没法控制,随便什么人都可以访问,

2、查了下 有说OAuth2.0可以解决

我想也不是很合适,因为OAuth不是有个登录页面,而我们的前端页面也不需要用户授权来登录(非用户账号密码登录,类似微信授权登录)

不知道大伙有没好的解决方案
...全文
5956 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
买房动力十足 2017-07-21
  • 打赏
  • 举报
回复
引用 17 楼 u012743772 的回复:
不是说了secret 不参与参数传递,别人怎么知道? OAuth2.0 是个重量级的认证,如果只是前后端不建议使用
前端不能存储appsecrect的
  • 打赏
  • 举报
回复
最好的就是做权限验证,登录之后往服务器写session,然后用拦截器去拦截
MaxCode-1 2017-07-11
  • 打赏
  • 举报
回复
设置一个appkey ,secret 比如:appkey=111111,secret=2222(secret不传递) 接口要传的参数:name,id 然后对md5= appkey+name+id+secret 进行MD5加密 , 把appkey,name,id,md5 传给后台 后台进行验证 secret 不传 后台对md5验证 希望对你有用 http://blogxinxiucan.sh1.newtouch.com/
MaxCode-1 2017-07-11
  • 打赏
  • 举报
回复
不是说了secret 不参与参数传递,别人怎么知道? OAuth2.0 是个重量级的认证,如果只是前后端不建议使用
买房动力十足 2017-07-11
  • 打赏
  • 举报
回复
引用 15 楼 u012743772 的回复:
设置一个appkey ,secret 比如:appkey=111111,secret=2222(secret不传递) 接口要传的参数:name,id 然后对md5= appkey+name+id+secret 进行MD5加密 , 把appkey,name,id,md5 传给后台 后台进行验证 secret 不传 后台对md5验证 希望对你有用 http://blogxinxiucan.sh1.newtouch.com/
前端用md5 hash 别人也会啊,别人知道你appkey了 一样可以仿冒你请求
什么都不能 2017-07-10
  • 打赏
  • 举报
回复
你们的授权从哪里来?
买房动力十足 2017-07-10
  • 打赏
  • 举报
回复
引用 10 楼 minemine0418 的回复:
[quote=引用 9 楼 w156445045 的回复:] [quote=引用 5 楼 zc881124 的回复:] 一般加令牌token,百度的API都是这样,需要一个AK,其实就是一个唯一凭据。
我想问的是具体怎么来实现[/quote] 登录时候生成token,然后写拦截器拦截用户请求,校验token,通过即可访问[/quote] token被拦截获取到,也相当于是无用了
买房动力十足 2017-07-10
  • 打赏
  • 举报
回复
引用 4 楼 pany1209 的回复:
1.生成token校验合法性 2.密钥加密解密 3.限制接口访问频率等等。。。
具体如何实现呢,大致的原理肯定都知道的
110成成 2017-07-06
  • 打赏
  • 举报
回复
引用 9 楼 w156445045 的回复:
[quote=引用 5 楼 zc881124 的回复:] 一般加令牌token,百度的API都是这样,需要一个AK,其实就是一个唯一凭据。
我想问的是具体怎么来实现[/quote] 服务端生成token,具体生成算法,可以使用BASE64或者RSA 都可以,每次访问的时候都必须带token,服务端做验证,也可以将token绑定具体的IP,服务器端同样验证。
minemine0418 2017-07-06
  • 打赏
  • 举报
回复
引用 9 楼 w156445045 的回复:
[quote=引用 5 楼 zc881124 的回复:] 一般加令牌token,百度的API都是这样,需要一个AK,其实就是一个唯一凭据。
我想问的是具体怎么来实现[/quote] 登录时候生成token,然后写拦截器拦截用户请求,校验token,通过即可访问
买房动力十足 2017-07-06
  • 打赏
  • 举报
回复
引用 5 楼 zc881124 的回复:
一般加令牌token,百度的API都是这样,需要一个AK,其实就是一个唯一凭据。
我想问的是具体怎么来实现
买房动力十足 2017-07-06
  • 打赏
  • 举报
回复
引用 5 楼 zc881124 的回复:
一般加令牌token,百度的API都是这样,需要一个AK,其实就是一个唯一凭据。
具体怎么来实现呢
买房动力十足 2017-07-06
  • 打赏
  • 举报
回复
引用 4 楼 pany1209 的回复:
1.生成token校验合法性 2.密钥加密解密 3.限制接口访问频率等等。。。
怎么实现呢,具体的实现 这说的太泛了吧
X元素 2017-07-06
  • 打赏
  • 举报
回复
RSA吧 ,虽然性能上弱了一些,如果对数据安全要求比较严格,在前端做对称加密肯定是不行的,如果要求不严格的话,可以采用验签的方式。。
110成成 2017-07-06
  • 打赏
  • 举报
回复
一般加令牌token,百度的API都是这样,需要一个AK,其实就是一个唯一凭据。
李德胜1995 2017-07-05
  • 打赏
  • 举报
回复
1.生成token校验合法性 2.密钥加密解密 3.限制接口访问频率等等。。。
NANU-NANA 2017-07-05
  • 打赏
  • 举报
回复
什么样的人不可以访问呢?
买房动力十足 2017-07-05
  • 打赏
  • 举报
回复
引用 1 楼 u010087908 的回复:
CAS?
这不是单点登录吧
NANU-NANA 2017-07-05
  • 打赏
  • 举报
回复
CAS?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧