场景是 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 减少公开接口数量, 部分功能限制用户登陆后才能使用, 这样非公开接口可以对用户访问频率进行限制, 一定程度上可以解决问题,但是也很麻烦,其实这里就是反爬虫了, 多帐号模仿一样防不住
本意是做一个公开免费的程序,但是实际运行下来,出现不少人从接口拉数据,然后去做一些恶心的事情, 所以想有没有可能进行限制?
另外因为是免费程序基本没啥收益,所以如果校验成本太高也不考虑了。
最后欢迎加入讨论。
已经思考过的
No.1 请求的 url 里加 hash 校验,但是 hash 加密在 js 完成,基本就等于明文
No.2 CORS 之类的 original 校验, 但是貌似这个是可以被篡改的
No.3 在 https 协议上做点文章, 但是貌似没有特别好的方案
备选方案
No.1 定期更新加密方式, 比如按照周或者月更新, 但是还是明文方式所以基本上没啥意义
No.2 减少公开接口数量, 部分功能限制用户登陆后才能使用, 这样非公开接口可以对用户访问频率进行限制, 一定程度上可以解决问题,但是也很麻烦,其实这里就是反爬虫了, 多帐号模仿一样防不住
本意是做一个公开免费的程序,但是实际运行下来,出现不少人从接口拉数据,然后去做一些恶心的事情, 所以想有没有可能进行限制?
另外因为是免费程序基本没啥收益,所以如果校验成本太高也不考虑了。
最后欢迎加入讨论。