论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
安全
›
网络安全
›
Android开辟规范:API接口安全设计规范
Android开辟规范:API接口安全设计规范
商道如狼道
论坛元老
|
2024-11-14 22:38:47
|
显示全部楼层
|
阅读模式
楼主
主题
1024
|
帖子
1024
|
积分
3072
API接口设计系列文章
Android开辟规范:API接口安全设计规范
Android开辟规范:API接口通用设计规范
文章目录
防篡改
防重放
Https
APP的数据来源就是API接口,所以API接口对于APP的意义来说不言而喻。
设计API接口最重要的考虑点就是安全机制。
我们这边将从三个方面来考虑怎么设计一个安全的API接口。
防篡改
防篡改就是防止请求的URL参数值发送至服务器的时候被改动。
普通的API接口格式是xxx.html?key1=xx?key2=xx?key3=xx。
我们接纳
sign
签名方式保证数据传输的正确性。
我们的app一般会在公司的背景申请一个appKey和appSecret,这两个是逐一对应的。
appKey我们会作为一个参数写在URL中,发送至服务器。
appSecret则用于参与生成sign的盘算。
sign算法必要充足复杂,最好有一套自己的签名算法,不是外界公开的;
一般接纳安全散列算法实现,比如SHA1。
sign也要作为一个参数添加到URL中,和appKey一并发送至服务器。
如:xxx.html?appKey=xx?sign=xx?key1=xx?key2=xx?key3=xx。
服务器收到请求后,会通过appKey查到对应的appSecret,然后通过同样的散列算法,得到一个sign,然后比较一下两个sign是否相等。假如不相等则数据找到篡改,废弃这条请求。
别的,关于appSecret有两种使用方式:
appSecret直接写死在客户端代码中,如许直接获取调用即可。
appSecret还可以通过一个专门的接口getSign从背景获取。
这种环境必要用户起首登录乐成后,服务器返回一个
accessToken
,然后调用appSecret接口必要带上这个accessToken参数。
防重放
办理了数据被篡改的问题,还有一个问题就是假如一条正常的请求数据被人获取到了,从而进行二次甚至多次请求怎么办?
我们这边可以使用nonce + timestamp的办理方案。
nonce
nonce就是一个随机数,由客户端生成,每次请求将随机数作为一个参数发送给服务器。
服务器会在数据库里查询是否有这个nonce,假如没有则是一条新的请求,进行正常处理;
假如能查到已经存在这个nonce,则废弃这条请求。
nonce可以通过UUID.randomUUID().toString()来生成。
有个问题就是这个nonce在数据库中随着请求量的增大而导致数据量会越来越大。
办理这个问题我们可以接纳timestamp时间戳的方式。
2. timestamp
时间戳是服务器给URL请求设定的一个有限时间范围起点。
比如服务器认为客户端发送带过来的timestamp与服务器的当前时间戳在10分钟之内,则认为这条请求是有效的。超过了10分钟则废弃这条请求。
还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!
王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!假如你能答对70%,找一个安全工作,问题不大。
对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!
【完整版领取方式在文末!!】
93道网络安全面试题
内容实在太多,不逐一截图了
黑客学习资源推荐
末了给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点资助!
对于从来没有打仗过网络安全的同学,我们帮你准备了具体的学习成长门路图。可以说是最科学最系统的学习门路,大家跟着这个大的方向学习准没问题。
1️⃣零基础入门
① 学习门路
对于从来没有打仗过网络安全的同学,我们帮你准备了具体的
学习成长门路图
。可以说是
最科学最系统的学习门路
,大家跟着这个大的方向学习准没问题。
② 门路对应学习视频
同时每个成长门路对应的板块都有配套的视频提供:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
商道如狼道
论坛元老
这个人很懒什么都没写!
楼主热帖
【python】实现文章同步csdn社区自动化 ...
SQLI-LABS(Less-5)
Django生产环境静态资源404问题 ...
Scrum 框架的四个会议还适用于哪些敏捷 ...
容器化 | 在 Rancher 中部署 MySQL 集 ...
如何利用ipad随时随地开发代码 ...
django 报错 'set' object is ...
MySQL数据库安装
2022 Delphi 11开发苹果IOS证书等详细 ...
MVCC - Read View的可见性判断理解 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
Mysql
向量数据库
备份
程序人生
图数据库
物联网
快速回复
返回顶部
返回列表