给 SPA(JS)调用的公开 RESTful API 有可能实现防盗链吗?

2020-01-31 17:59:32 +08:00
 lygmqkl
场景是 A(SPA 程序) 调用 B(RESTful API), 调用的过程中无需加密也无需登陆等 token 校验,想实现一种类似强制只有 A 才可以调用的思路,但是目前没有任何头绪,因为是 JS 级代码,任何 encode 貌似都苍白无力

已经思考过的
No.1 请求的 url 里加 hash 校验,但是 hash 加密在 js 完成,基本就等于明文
No.2 CORS 之类的 original 校验, 但是貌似这个是可以被篡改的
No.3 在 https 协议上做点文章, 但是貌似没有特别好的方案

备选方案
No.1 定期更新加密方式, 比如按照周或者月更新, 但是还是明文方式所以基本上没啥意义
No.2 减少公开接口数量, 部分功能限制用户登陆后才能使用, 这样非公开接口可以对用户访问频率进行限制, 一定程度上可以解决问题,但是也很麻烦,其实这里就是反爬虫了, 多帐号模仿一样防不住


本意是做一个公开免费的程序,但是实际运行下来,出现不少人从接口拉数据,然后去做一些恶心的事情, 所以想有没有可能进行限制?


另外因为是免费程序基本没啥收益,所以如果校验成本太高也不考虑了。

最后欢迎加入讨论。
302 次点击
所在节点    问与答
0 条回复

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

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

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

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

© 2021 V2EX