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

我是产品汪

30天以前 5浏览
WebAPI接口如何防止本网站/APP以外的调用?

随着信息化进程的加快,现在的网站和APP应用很常见,对于普通用户而言我们只能看到表现层(界面视图层),而内部的的数据交互及处理靠的是一个个API来实现的。所谓的API是指应用程序接口,也就是将特定的业务功能封装起来供第三方调用,现在的API有很多种形式,而WebAPI是最常见和便捷的。

既然API是提供给第三方调用的,这就存在一个问题:很多时候我们希望API只能由自家的产品去调用,防止他人调用,这该如何实现呢?这就得靠接口鉴权了。

什么是接口(API)鉴权?

正如上面所说,如果把API接口直接暴露在互联网上是存在安全风险的,所以我们需要对API进行权限划分,对接口调用方做一个用户鉴权,如果鉴权通过则允许此用户进行API调用,反之则拒绝。

根据不同的业务场景,接口鉴权方案也有很多种,下面详细给大家介绍。

Cookie+Session机制实现WebAPI的鉴权

这种机制是最为传统的,特别是在网站中的登录模块靠的就是Cookie+Session来实现会话管理的。

1、实现原理

后台为了标识请求是哪个客户端发现的,会在服务端生成一个Session来保存会话状态,各个Session是靠具有唯一性的SessionID来标识的,SessionID存储在客户端的Cookie中;后续所有请求都会把Cookie传到服务器端,服务器端解析Cookie后找到对应的Session进行判断。

2、优点

技术实现方便。

3、缺点弊端

不适合分布式应用,跨平台性差

Cookie传输会影响通信性能

HTTP协议本身是无状态的,而Cookie+Session机制硬生生的给加了状态进去,不符合设计理念

存在安全风险:因为Cookie是存储在客户端的,客户端可以随意更改Cookie,存在伪造请求的风险

Token机制实现WebAPI的鉴权

Token(令牌)是用来替代Session的新兴鉴权方案,现在的WebAPI基本上离不开Token令牌。

1、实现原理

Token是服务器端生成的一串加密串发放给客户端,客户端请求服务器端所有资源时会带上这个Token(通过GET/POST/Header来传递),由服务器端来校验这个Token的合法性。

2、优点

真正的无状态,适合分布式,扩展性好

性能高,安全性好

3、Token的实现形式

Token令牌技术是一种技术方案统称,具体的实现方案是有所差别的,最常见的Token种类有以下几种:

自定义实现Token:应用开发者根据Token机制原理自行实现

JWT:JsonWebToken,是一种主流的Token规范

Oauth:Oauth本质上是授权规范,其中也用到了Token

HTTPBasicAuthentication认证机制

WebAPI是基于HTTP协议的,而HTTP协议本身就带有认证机制。

HTTP协议的认证机制主要有两种:

基本认证

摘要认证

但是这种机制日常很少使用,因为HTTP协议在传输数据过程中是明文传输的,所以这种认证机制本身就存在安全风险,除非配合HTTPS来实现。

本文仅代表作者观点,版权归属原创作者,如需转载请在文中标注来源及作则名字。

免责声明:本文系转载编辑文章,仅做分享只用,如有疑问请联系邮箱:110@zbj.com

软件app
大家都在看
抖音APP上的推广费用要多少?

抖音APP上的推广费用要多少?

软件app
124浏览
在抖音APP上的投放广告费用要多少

在抖音APP上的投放广告费用要多少

软件app
19浏览
App数据分析到底要分析什么?

App数据分析到底要分析什么?

软件app
4浏览
开发app项目负责人的要求?

开发app项目负责人的要求?

软件app
10浏览
开发一套app要多少钱做个简单app需要多少钱

开发一套app要多少钱做个简单app需要多少钱

软件app
6浏览
如何快速的推广APP,打开渠道?

如何快速的推广APP,打开渠道?

软件app
1浏览
想做app,要怎样找外包公司

想做app,要怎样找外包公司

软件app
15浏览
开发一个类似于美团的外卖app需要多少钱

开发一个类似于美团的外卖app需要多少钱

软件app
3浏览
抖音转转app广告词是什么?

抖音转转app广告词是什么?

软件app
413浏览
App出海,海外媒体投放平台怎么选?

App出海,海外媒体投放平台怎么选?

软件app
4浏览
做一个APP需要什么样的服务器?

做一个APP需要什么样的服务器?

软件app
3浏览
开发AndroidAPP使用的是什么语言?

开发AndroidAPP使用的是什么语言?

软件app
3浏览
app设计的原则及注意事项?

app设计的原则及注意事项?

软件app
3浏览
如何在百度百科上成功创建APP的词条?

如何在百度百科上成功创建APP的词条?

软件app
5浏览
开发一个简单的APP要多少钱?

开发一个简单的APP要多少钱?

软件app
4浏览
开发手机APP所需要的编程语言?

开发手机APP所需要的编程语言?

软件app
7浏览
如何开发一款理想的购物商城APP

如何开发一款理想的购物商城APP

软件app
3浏览
一个app的开发团队需要哪些人员?

一个app的开发团队需要哪些人员?

软件app
3浏览
如何通过地推活动来巧妙推广App

如何通过地推活动来巧妙推广App

软件app
3浏览
农村农民使用的APP如何推广?

农村农民使用的APP如何推广?

软件app
4浏览
点赞
收藏
分享