前后端分离后端 API 安全性最佳实践?

2017-01-25 23:11:16 +08:00
 11

不太清楚这块 web 现在流行的做法,想讨教下下面几个问题:

  1. 前端发送 AJAX 请求,后端 CORS 验证足够吗?那如果攻击者直接手动发送请求, CORS 就没法检测了吧?
  2. 前后端 API 鉴权如何做?如果是非登录的 API (比如 get ),那么根据用户名密码生成 token 就不现实了吧?所以应该是生成特定的 token 然后检测是否过期?
  3. JWT 现在实践上能解决上述问题吗?

一起探讨下,谢谢~~

2358 次点击
所在节点    问与答
8 条回复
Vogan
2017-01-26 00:31:48 +08:00
1.cors 是用来限定跨域请求,如果请求来自各种客户端,那么就是*了,和攻击者手动攻击有什么关系?如果是指定 ip ,那写在规则里就行

2.不需要 token 的公开 API 就是正常请求啊,一般是一定时间请求次数,依据是 ip

3.没用过。用的 oauth2
zhouquanbest
2017-01-26 00:57:47 +08:00
app 怎么做 web 就怎么做
走 Oauth2 就好了
Septembers
2017-01-26 02:47:36 +08:00
HTTPS Only (TLS 1.3)
hxsf
2017-01-26 10:02:50 +08:00
@Vogan 1.只有 web 有 cors 。浏览器实现的

2. 通用无状态 api 一般使用 header 里塞 token 来确认请求源身份。

3.jwt 是一套别人的一种实现。还带了权限控制貌似,看得不多。详细看 jwt 官网。
11
2017-01-26 10:25:46 +08:00
@Vogan
@hxsf 关于 CORS 我其实想讨论的是如何防止 API 被非法使用?
hxsf
2017-01-26 10:33:16 +08:00
@11 #5 cors 仅仅能限制前端的跨域请求,一定程度上的防护,别人使用其他方式请求你的接口照样能拿到数据。

身份核实还是要靠 其他手段来 鉴权,比如我刚刚说的第二个。
11
2017-01-26 10:36:55 +08:00
@hxsf 对我就是这个意思。 thanks
hnch201414
2017-01-26 11:22:25 +08:00
jwt 可以

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/336940

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX