博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WEB API的安全问题
阅读量:6323 次
发布时间:2019-06-22

本文共 759 字,大约阅读时间需要 2 分钟。

hot3.png

web server里的的application提供给APP,浏览器,第三方调用等客户端的的接口大多采用http协议,如何做到保证接口的数据安全,接口权限验证有如下一些方案:

 

一。请求被恶意频繁执行

为了防止接口被其他未知客户请求, 可以采用签名的方式对接口进行保护。

 

原理:

接口

该接口很容易被客户模拟请求的方式频繁请求。

改为 &sign=1213xxx&timestamp=12332132key="321dss"

 

sign是该请求的签名,服务器端验证签名,如果签名正确 则对请求进行处理。

也可以把所有参数按规则排序后进行MD5加密后做签名,可以防止请求数据被篡改。

 

首页为客户端分配一个私钥。

sign算法:sign = MD5( 时间戳+私钥)。

服务器端限制改签名的有效时间为时间戳+10分钟,就可以保证该签名只在10分钟内有效。

为了区别不同客户端的私钥,通常还会为用户分配一个key。

 

问题:1.客户端时间不准确,导致在服务器端校验时 时间戳不在有效范围内。

2.市区不同 时间戳不同。

一些短信平台,地图,云存储平台对客户的接口访问采用该方式对接口进行

通常会为用户分配一个key对用户进行识别,在请求的时候携带此key作为用户识别。

 

 

二。数据被抓包窃取。

1. HTTPS 保证数据在传输中不被中间人获取。

2. 密码等数据在客户端进行对称加密后进行传输

3. 对于一些安全要求高,但并发不高的请求,可以对所有请求参数进行对称加密。

 

 

三。API 的授权问题

参考OAUTH2 模型。

结合微信的网页授权模式。

角色: 授权服务器,资源服务器,用户,请求客户端

 

四。恶意攻击

1.ngnix拦截

2.

 

转载于:https://my.oschina.net/zhaolin/blog/1810506

你可能感兴趣的文章
甲骨文中国数据库中心将落地,与微软数据库市场两家独大
查看>>
IBM MobileFirst Platform Foundation 7.0 支持Cloudant, REST和oAuth了
查看>>
Oracle将NetBeans交给了Apache基金会
查看>>
Chris Lattner谈Swift 3和Cocoa“重命名”
查看>>
有关GitHub仓库分支的几个问题
查看>>
微服务落地,我们在考虑什么?\n
查看>>
同事反馈环:为什么度量和会议还不够充分
查看>>
从Java 9反向移植对象反序列化过滤器
查看>>
“如何让团队成员获得成长?”四名高段位 CTO 为你解惑
查看>>
.NET Core中的去虚
查看>>
Red Hat与微软合作,将致力于构建企业级Linux版.NET
查看>>
量体裁衣:将DevOps转型融入到企业文化
查看>>
入门Java多线程1
查看>>
不受微软待见的Python,如何在八年内逆袭成功?
查看>>
书评:《All About Java 8 Lambdas》
查看>>
NPM 2018年回顾与2019年预测
查看>>
.NET Core如何为项目提供高性能解决方案?
查看>>
LFE将Lisp编程带到Erlang虚拟机上
查看>>
Chrome 45将不再自动播放Flash
查看>>
新浪微博内容数据采集爬虫怎么写
查看>>