关于前端 token 安全问题

2020-08-05 10:18:59 +08:00
 BruceXHe
前端:VUE

后台:.NET CORE REST API

现在我们后台的接口,需要 TOKEN,TOKEN 通过 clientId,clientKey 获取的(非用户输入用户名和密码),
目前只有把 clientId,clientKey 配置在 VUE 代码里用于获取 TOKEN,但是这样就不安全了。

请问大家有什么办法?
10109 次点击
所在节点    Vue.js
88 条回复
rrfeng
2020-08-05 19:45:26 +08:00
网络抓个包随便看……对于想要看的人来说毫无难度。
DeepCold
2020-08-05 20:16:10 +08:00
拉个 node 当中间层 做服务端渲染,就能避免暴露后端接口了,应该是最佳解决办法。
sampeng
2020-08-05 21:09:29 +08:00
问题应该是反扒,而不是只有你的 js 才能访问到。
说的最简单点,我要爬你的东西,先本地装个根证书,看你请求详情,然后直接拿这个去跑脚本…防小白就是直接 js 里面做点反扒的手段。

另外说一嘴,网络安全在于你数据对别人有没价值,而不是对你有没价值。商品详情而已,防爬攻防战咯。还一种蠢办法。生成的是图片不是文字。服务端吐出图片和文字混排的…我上次想爬时光网就发现他是这么干的…无语的不行。

了解一下 webassembly,直接二进制。破解难度应该远大于混淆过的 js 。绝大多数浏览器新版支持。
icecreamxuegao
2020-08-06 09:26:51 +08:00
哪怕 js 压缩混淆了,直接抓包不也能抓出来吗
a728976009
2020-08-06 09:37:14 +08:00
oauth2 有 implict 模式和 pkce 模式可以让前端在不知道 secret 的情况下拿 token,但看起来你的后端不是 oauth,所以建议改设计
cyrbuzz
2020-08-06 10:01:49 +08:00
用 Nuxt 在服务器端执行获取逻辑?
jake361
2020-08-12 10:08:41 +08:00
不让别人调用你们的接口?
有跨域问题你怕啥,你可以让后端只允许某个域名调用不就 ok 了
jake361
2020-08-12 10:11:07 +08:00
@kop1989 这个是正解... 只能是反爬上下功夫。

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

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

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

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

© 2021 V2EX