WebApi框架数据安全、信息安全与接口安全六大机制
作者:作者不详  发布日期:2020-11-23 17:17:31
  WebApi框架数据安全、信息安全与接口安全六大机制

WebApi框架数据安全、信息安全与接口安全六大机制



WebApi框架数据安全、信息安全与接口安全六大机制


贴图图片-webapi信息安全机制




一、Token机制


Token:令牌,访问接口的身份标识。

每次登录系统生成一个标识,存储在Api_UserToken表。 有过期特征,若要维持Token不过期,要保持访问接口活动状态。因此访问接口时会刷新当前用户的活动时间,重置初始状态。类似心跳机制。

Token过期:web.config设置,TokenExpireMinutes参数(默认值5分钟)。

若api_user表的TokenExpires=null, 则取web.config的TokenExpiresMinutes参数。

应用:手机APP程序、Web系统, 基于C/S架构的WCF服务。

Web端或移动端,访问接口要传递令牌参数。



WebApi Token相关参考文章:


基于Web前端用户调用CSFramework.WebApi服务端登录登出接口实现


CSFramework.WebApi令牌管理器(Token Provider)实现添加、删除、刷新令牌过期控制


CSFramework.WebApi后端服务器框架:客户端调用WebApi接口方式(签名+Token令牌)


CSFramework.WebApi开发框架模拟Web用户端登录、调用WebApi接口增删改查数据


CSFramework.WebApi后端框架Token令牌工作机制以及Token刷新原理


WebApi开发框架:Token生成、Token缓存原理、Token验证、令牌机制与原理



二、ApiKey(公钥)Secret Key(私钥)


ApiKey(公钥)开发者编号

给应用程序开发者分配的公钥(用户身份证,唯一标识, 明文传输), 提供给:平台的合作伙伴、供应商、客户等。

比如我们的WebApi服务器,要开放接口给客户使用,分配给喜鹊科技一个Apikey:

公钥:5A02D19B-0397-497E-87EF-B4C8263F741E

私钥:6A02D19B-0397-497E-87EF-B4C826366666


安全机制:当用户访问接口时,最先判断ApiKey是否在WebApi服务器存在!!!

HTTPPOST: act.aspx?apikey=5A02D19B-0397-497E-87EF-B4C8263F741E

SecreKey(私钥):用于数字签名,MD5加密。
私钥的特点:WebAPI接口不传输参数,公钥和私钥是1对1,一个公钥配对一个私钥。



ApiKey表(Api_UserKeys表)


贴图图片-api_user




三、平台用户表(Api_User)


贴图图片-api_user表


平台用户表用于管理和维护系统登录账号,登录用户。根据手机号、密码、登录时间等信息以及用户登录登出时间可以分析用户行为。

通过Status状态可以锁定用户禁止登录。

TokenExpires:Token过期时间(minutes), 15分、7天,15天,月,用不过期。


四、数据签名、加密

WebApi接口的数字签名(Data Sign)机制

WebApi接口的数字签名用于接口数据安全以及用户认证防篡改。

防篡改,顾名思义就是防止有人恶意篡改请求数据以达到恶意攻击的目的。

基本原理:

将要请求的数据加上ApiKey(公钥)、SecreKey(私钥),按规则组织成一个字符串,获取对应的MD5摘要,然后将该摘要及公钥同时作为请求的参数一起传递(私钥禁止传递)给WebApi服务器。

基本流程:

1. 客户端数字签名(MD5数据加密)

格式:partner=公钥&orderNo=业务数据&sign=MD5签名
格式:partner=3122131212&orderNo=1234567&sign=EBFE84D02E8E40952899EE5CDFE5404C
签名算法:MD5(partner+orderNo+私钥), MD5三个参数的值。


2. 服务端签名校验(解密)

首先通过请求的ApiKey获取对应的私钥,然后通过上述签名算法计算MD5值,
对比请求的sign参数与计算结果是否一致,若不一致,数据被篡改。


JSON Code:

{
Apikey: 5A02D19B-
0397-497E-87EF-B4C8263F741E
Data:“我要获取数据”
Sign: 8dfa959cd5db1ead40a29c56cfe176ec

}


//来源:C/S框架网 | www.csframework.com | QQ:
23404761



五、接口限流(Throttling)


限流:Throttling, 针对用户访问接口的频率进行控制,如限制同一个IP每秒种对XX接口访问3次。

结合路由器的ddos+WebApi的限流,确保服务器及应用程序安全。

Throttling是三方插件(dll)。



参考文章:

WebApi接口安全机制:API接口限流防止恶意访问 ThrottlingHandler消息处理机制




六、黑、白名单用户



黑名单:sys_IP_Blacklist

客户端请求(Request)会带有终端信息,比如:IP,操作系统,时间。

WebApi后台判断当前IP是否在黑名单存在,黑名单用户拒绝访问接口。

判断黑名单的优先级最高!!!


白名单:sys_IP_Whitelist

优先通道用户,享有特权用户。如:后台系统有5级安全检查,若是白名单用户只需3级检查即可。




C/S框架网|原创精神.创造价值.打造精品

扫一扫加微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务

上一篇 下一篇