美文网首页
APP安全经验漫谈

APP安全经验漫谈

作者: 北你妹的风 | 来源:发表于2018-02-22 18:01 被阅读12次

面向互联网用户的APP,安全问题是绕不开的,是开发者必须要考虑的重要问题。

然而实际开发过程中,很多开发者仅仅只是实现了功能,安全问题几乎没有认真考虑过。

这篇文章谈谈本人在工作过程中关于安全问题积累的一些经验。这里说的APP安全主要是针对和服务端有数据库交互的应用,数据存放在本地甚至没有数据交互的应用,暂且不表。

个人理解的APP安全核心由两个问题组成:1、如何确保用户的数据请求是合法的?2、如何确保数据交互过程是安全的?

第一个问题的解决思路是鉴权。每一次请求(这里特指http/https请求),都需要在请求参数或请求头里加入两个值:用户唯一id和请求凭证,这两个值必须是一一对应的,可在用户登录成功后由服务端生成返回给客户端并存储在本地。服务端处理的每一个请求,会把这两个值取出来进行比对校验,校验通过则认为请求合法,即可做正常的业务处理。否则直接返回错误信息。服务端存储用户id和请求凭证时,可加入有效期,进一步提高安全性。

有一点需要注意,用户登录或注册时,此时客户端本地并没有请求凭证,服务端如何做校验?答案是短信验证码。可以看下现在主流APP,登录或注册几乎都是使用验证码进行校验,在手机未丢失的情况下,这可能是最安全的校验方法了(你要是把验证码告诉别人当我没说),有些应用甚至在付款等关键操作也加入短信验证码,以提高安全性。

第二个问题的解决思路是加密。HTTP请求是不安全的,数据交互过程是明文传输,有可能被截获或被篡改。使用HTTPS可以避免该问题。HTTPS原理简单提一下:1.使用对称算法进行数据传输过程中的加解密,常用的有DES、AES算法;2.使用非对称加密算法进行密码(对称算法的公钥)的加解密,常用的有非对称算法RSA、Elgamal算法。3.使用Hash算法校验密码的完整性,常用的有MD5,SHA1,SHA256算法。如果不能提供HTTPS服务,则需要根据实际情况自己实现数据传输过程的加解密。如果是关键数据,建议使用RSA等非对称加密,但性能较差,我之前负责的一个APP就曾经因为所有请求都是用RSA加密而导致后台服务宕机。如果是非核心数据,可以使用对称加密算法。

相关文章

  • APP安全经验漫谈

    面向互联网用户的APP,安全问题是绕不开的,是开发者必须要考虑的重要问题。 然而实际开发过程中,很多开发者仅仅只是...

  • 架构细节

    寒哥教你学iOS - 经验漫谈 一次立竿见影的启动时间优化 iOS 从0到1搭建高可用App框架 iOS 从0到1...

  • 处女座产品经理的一天

    之前写的《呆宝漫谈自我管理》好评度很高,一连几天都有人和我交流自我管理的经验,其中大家最关心的就是用哪些APP可以...

  • Cookie安全漫谈

    在 Web 应用中,Cookie 很容易成为安全问题的一部分。从以往的经验来看,对 Cookie 在开发过程中的使...

  • 漫谈营销安全

    作者介绍 小玛 某金融公司风控分析师一枚 “一个数据人的自留地”创作者联盟成员 专注风控多年,持续更新风控系列文章...

  • 母婴APP漫谈

    陪着老婆坏了一次孕,把用过的APP都点评一下子,嗯。 一、工具 备孕、怀孕工具是第一入口,这个是所有APP都必...

  • [iOS] 实用经验漫谈

    -1-.隐藏某行cell -2-.去除数组中重复的对象 -3-.自定义了leftBarbuttonItem左滑返回...

  • 滴滴/淘宝/微信/蘑菇街/casatwy等 iOS App的组件

    滴滴/淘宝/微信/蘑菇街/casatwy等 iOS App的组件化架构漫谈 http://www.swifthum...

  • 滴滴/淘宝/微信/蘑菇街/casatwy等 iOS App的组件

    滴滴/淘宝/微信/蘑菇街/casatwy等 iOS App的组件化架构漫谈 http://www.swifthum...

  • 对 iOS app 进行安全加固

    对 iOS app 进行安全加固 对 iOS app 进行安全加固

网友评论

      本文标题:APP安全经验漫谈

      本文链接:https://www.haomeiwen.com/subject/xjcztftx.html