Web API接口如何防止本网站/APP以外的调用?

现在APP的API是WEB API实现的,返回的数据是JSON格式。

现在有个问题就是如何防止本APP或者本网站以外的地方调用这些API。

比如说,现在有一个新闻列表的接口,返回新闻标题的JSON数据。如果别人也知道了这个API地址,那么对方也可以拿去使用,这样对我们的服务器就会造成不必要的压力。

需要在服务器和客户端做哪些工作才能解决上述问题呢?

恳请各位大神不吝赐教,谢谢!

阅读 8.8k
6 个回答

加黑名单
基于用户权限提供api

如果是没有权限的api访问。 那可以对这个api地址加盐。 客户端和服务器端使用同一个加盐算法。

新手上路,请多包涵

参数签名,基于只有你自己知道的算法

1,针对前端 Ajax 请求,设置Access-Control-Allow-Origin控制允许的域名。不在前端做加密,因为前端是公开的,任何加密都没有意义,只会暴露你的加密算法

2,针对其他服务器请求,设计一套 Key 规则,带有合法 Key 的请求才响应

加上token验证 或者签名验证 服务器端生成token 客户端带着先带着秘钥获取token 然后客户端带着token去获取新闻数据

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏