现在APP的API是WEB API实现的,返回的数据是JSON格式。
现在有个问题就是如何防止本APP或者本网站以外的地方调用这些API。
比如说,现在有一个新闻列表的接口,返回新闻标题的JSON数据。如果别人也知道了这个API地址,那么对方也可以拿去使用,这样对我们的服务器就会造成不必要的压力。
需要在服务器和客户端做哪些工作才能解决上述问题呢?
恳请各位大神不吝赐教,谢谢!
1,针对前端 Ajax 请求,设置Access-Control-Allow-Origin
控制允许的域名。不在前端做加密,因为前端是公开的,任何加密都没有意义,只会暴露你的加密算法
2,针对其他服务器请求,设计一套 Key 规则,带有合法 Key 的请求才响应
看看这个帖子:http://.com/q/1010000004234305
加黑名单
基于用户权限提供api
如果是没有权限的api访问。 那可以对这个api地址加盐。 客户端和服务器端使用同一个加盐算法。
参数签名,基于只有你自己知道的算法
加上token验证 或者签名验证 服务器端生成token 客户端带着先带着秘钥获取token 然后客户端带着token去获取新闻数据