浅谈移动端接口安全那些事

前言

服务端提供对外开放到公网API接口,危险非常大.尤其对移动应用开放接口的时候,更需要关注接口安全性的问题,要确保应用APP与API之间的安全通信,防止数据被恶意篡改等攻击。写这篇文章的初衷也是为了收集更多的方案,国内APP多大裸奔是时候关注接口安全和加强接口的安全了。

故事

以前公司因员工离职后与公司还存在的一些矛盾,导致接口被攻击了大量数据被污染。因为发现得及时和数据库做了备份,最后的方案也只能丢弃一天多的数据直接回滚到前一天的数据库备份!这种事情就不多评论了!公司有很大的问题,员工通过这种违法的手段来报复也是不可取的!!!

基础的方法

1. 请求合法性校验

  • 考虑采用token,sign签名,app_key授权等方式保证接口不被其他人访问。

2. 数据校验

  • 客户端提交的数据都由服务器验证数据格式、数据完整性、防止SQL注入

3. 数据加密

  • 客户端提交敏感数据都进行加密。

4. 统一错误

  • 服务器返回的错误都统一化,避免堆栈信息泄露。

5. 限制调用频率

  • 对接口访问次数和频率设置阈值,超出预定阈值进行拒绝访问。

客户端的一些方案

一、简单token机制
客户端在登陆成功后由服务器返回用户信息和一个Token字段,将户信息加密后放入SharedPreferences中,以后每次请求把token字段和用户id加密后放人Header中由服务器验证。

    {"user_id":"1","user_name":"xxx", Token:"eyJhbGciOiJIUzI1NiIsI.eyJpc3MiOiJodHRwczotcGxlL.mFrs3Zo8eaSNcxiNfvRh9dqKP4F1cB"}

注:我们的简单token 分为3块 token + 盐 + 时间戳


image.png

客户端生成访问Token:


image.png

通过抓包能随时获取token,在一定时效内能随意访问!超时需要重新抓包!根本没什么作用,只能防止用户通过URL直接获取到数据。

二、Access Token + sign签名
每次客户端启动去访问服务器接口,服务器通过验证时效性和服务器对比进行获取和刷新access_token

https://api.com/token

    {"access_token":"ACCESS_TOKEN","expires_in":7200}

每次通过读取access_token 生成sign签名,放人Header中由服务器验证。

access_token.png

更加灵活的方案,可以由服务器动态的控制APP是否能访问服务器。通过抓包能随时获取sign,在一定时效内能随意访问!这个是HTTP硬伤,明文在怎么样都没办法避免抓包!下面主要是处理抓包

三 Cookie Auth 认证机制

上面提到了HTTP因为抓包无论什么怎么防范都并卵!服务器小哥哥告诉我们让我们用Cookie来管理用户登录状态和访问权限。
每次登录后服务器返回一个Cookie,Cookie缓存到本地下次访问带上Token
OkHttp3实现Cookies持续化管理

最后因为下面2点替换方案
1.不符合Restful 最佳实践。
2.用着麻烦

四 JWT(JSON WEB Token)
别问我为什么没用HTTPS,因为穷。。。

JWT:是JSON风格轻量级的授权和身份认证规范,可实现无状态、分布式的Web应用授权;

JWT通常由三部分组成: 头信息(header), 消息体(payload)和签名(signature)。

讲真,别再使用JWT了!

不太适合多用户和用户切换

五 HTTPS + Access Token + sign签名

感谢IOS大爷强制使用HTTPS,让我们苦逼Android也能享受HTTPS了。

HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。(引用百度百科)

HTTPS防止抓包和自带SSL加密,业务中Access Token + sign签名机制已经在项目中使用了,那继续使用吧!

注:其实HTTPS在数据传输中已经很安全了,服务器加入一些数据校验和 限制调用频率即可!

六:设备的唯一标识符绑定

设备的唯一标识符绑定: 账号和手机的唯一标识符相绑定。

七:简化登录流程

  1. 通过短信直接登录
  2. 通过第三方登录oauth2.0

总结:

接口安全提升 只能防君子,不能防小人。只适合防技术一般或者懂一点技术的,技术牛逼又喜欢作恶的,都在牢房里!

毕竟里面的人说话又好听,个个都是人才,超喜欢里面,有家一般的感觉

有不足的请各位指出和分享!谢谢
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,050评论 4 370
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,538评论 1 306
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,673评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,622评论 0 218
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,047评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,974评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,129评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,893评论 0 209
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,654评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,828评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,297评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,619评论 3 262
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,326评论 3 243
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,176评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,975评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,118评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,909评论 2 278