Android开发规范:API接口安全设计规范

这篇具有很好参考价值的文章主要介绍了Android开发规范:API接口安全设计规范。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

书籍购买地址:京东 当当 天猫

Android开发规范:API接口安全设计规范,程序员,android,安全,设计规范

API接口设计系列文章

  1. Android开发规范:API接口安全设计规范

  2. 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有两种使用方式:

  1. appSecret直接写死在客户端代码中,这样直接获取调用即可。

  2. appSecret还可以通过一个专门的接口getSign从后台获取。

这种情况需要用户首先登录成功后,服务器返回一个accessToken,然后调用appSecret接口需要带上这个accessToken参数。

防重放


解决了数据被篡改的问题,还有一个问题就是如果一条正常的请求数据被人获取到了,从而进行二次甚至多次请求怎么办?

我们这边可以使用nonce + timestamp的解决方案。

  1. nonce

nonce就是一个随机数,由客户端生成,每次请求将随机数作为一个参数发送给服务器。

服务器会在数据库里查询是否有这个nonce,如果没有则是一条新的请求,进行正常处理;

如果能查到已经存在这个nonce,则废弃这条请求。

nonce可以通过UUID.randomUUID().toString()来生成。

有个问题就是这个nonce在数据库中随着请求量的增大而导致数据量会越来越大。

解决这个问题我们可以采用timestamp时间戳的方式。

2. timestamp

时间戳是服务器给URL请求设定的一个有限时间范围起点。

比如服务器认为客户端发送带过来的timestamp与服务器的当前时间戳在10分钟之内,则认为这条请求是有效的。超过了10分钟则废弃这条请求。

如果10分钟内的请求,需要在数据库中查询nonce是否有记录,如果有记录这废弃这条请求;

如果没有记录,则记录这个nonce,并且将超过10分钟的nonce全部删除。

关于这个timestamp获取的问题,同样需要从服务器获取,不然客户端怎么知道服务器的起点计算时间呢?

先自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

Android开发规范:API接口安全设计规范,程序员,android,安全,设计规范

Android开发规范:API接口安全设计规范,程序员,android,安全,设计规范

Android开发规范:API接口安全设计规范,程序员,android,安全,设计规范

Android开发规范:API接口安全设计规范,程序员,android,安全,设计规范

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以扫码领取!!!!

Android开发规范:API接口安全设计规范,程序员,android,安全,设计规范
最后是今天给大家分享的一些独家干货:

【Android开发核心知识点笔记】

Android开发规范:API接口安全设计规范,程序员,android,安全,设计规范

【Android思维脑图(技能树)】

Android开发规范:API接口安全设计规范,程序员,android,安全,设计规范

【Android核心高级技术PDF文档,BAT大厂面试真题解析】

Android开发规范:API接口安全设计规范,程序员,android,安全,设计规范

【Android高级架构视频学习资源】
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可免费领取!文章来源地址https://www.toymoban.com/news/detail-845656.html

[外链图片转存中…(img-1dNMowQE-1711231877857)]

【Android高级架构视频学习资源】
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可免费领取!

到了这里,关于Android开发规范:API接口安全设计规范的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android相机开发实战,Android程序员必看

    由于需求不同,所以选择的方案固然也不同,至于第二种调用系统相机,这里就不过多讲解了,使用Intent对象设置一个Action动作即可,跳转时使用startActivityForResult,然后在onActivityResult处理相关数据便可,关键代码: intent.setAction(“android.media.action.STILL_IMAGE_CAMERA”); 至于使用

    2024年04月15日
    浏览(47)
  • 区块链钱包开发(Android篇),Android程序员必会

    布隆过滤器(Bloom Filter):过滤掉那些不包含有目标地址的交易信息,这一步能避免掉大量不相关的数据下载。 创建区块链 //创建区块链文件 File blockChainFile = new File(getDir(“blockstore”, Context.MODE_PRIVATE), “blockchain”); //创建SPVBlockStore,管理区块数据 blockStore = new SPVBlockStore(Co

    2024年04月09日
    浏览(84)
  • Android App开发基础(3)——App的设计规范

    本节介绍了App工程的源码设计规范,首先App将看得见的界面设计与看不见的代码逻辑区分开,然后利用XML标记描绘应用界面,同时使用Java代码书写程序逻辑,从而形成App前后端分离的设计规约,有利于提高App集成的灵活性。 手机的功能越来越强大,某种意义上相当于微型电

    2024年02月19日
    浏览(45)
  • API接口安全设计

    HTTP接口是互联网各系统之间对接的重要方式之一,使用HTTP接口开发和调用都很方便,也是被大量采用的方式,它可以让不同系统之间实现数据的交换和共享。 由于HTTP接口开放在互联网上,所以我们就需要有一定的安全措施来保证接口安全。 个人觉得安全措施大体来看主要

    2024年02月04日
    浏览(43)
  • Web开发模式、API接口、restful规范、序列化和反序列化、drf安装和快速使用、路由转换器(复习)

    一 Web开发模式 1. 前后端混合开发模式 2.前后端分离开发模式 二 API接口 三 restful规范 四 序列化和反序列化 五 drf安装和快速使用

    2024年02月10日
    浏览(43)
  • API 接口怎样设计才安全?

    设计安全的API接口是确保应用程序和数据安全的重要方面之一。下面是一些设计安全的API接口的常见实践: 使用适当的身份验证机制,如OAuth、JWT或基本身份验证,以确保只有经过身份验证的用户可以访问API。 实施授权机制,例如使用令牌或角色/权限来限制用户对资源的访

    2024年02月03日
    浏览(46)
  • 如何设计一个安全的API接口详解

    前言 在日常开发中,总会接触到各种接口。前后端数据传输接口,第三方业务平台接口。一个平台的前后端数据传输接口一般都会在内网环境下通信,而且会使用安全框架,所以安全性可以得到很好的保护。这篇文章重点讨论一下提供给第三方平台的业务接口应当如何设计?

    2024年04月13日
    浏览(40)
  • API接口的安全设计验证:ticket,签名,时间戳

    概述 与前端对接的API接口,如果被第三方抓包并进行恶意篡改参数,可能会导致数据泄露,甚至会被篡改数据,我主要围绕时间戳,token,签名三个部分来保证API接口的安全性 1.用户成功登陆站点后,服务器会返回一个token,用户的任何操作都必须带了这个参数,可以将这个

    2024年04月27日
    浏览(39)
  • API接口的安全设计验证:ticket,签名,时间戳(1)

    result.put(“success”,false); result.put(“ticket”,“”); result.put(“code”,“999”); result.put(“message”,“用户名和密码不匹配”); return result; } if (personEntity.getLoginName().equals(username) personEntity.getPassword().equals(password)){ String ticket = UUID.randomUUID().toString(); ticket = ticket.replace(“-”,“”);

    2024年04月27日
    浏览(38)
  • Android实现-心知天气API接口开发(天气预报app)

    自己开发app之心知天气APP程序代码粘贴即可用。完整代码附最后。 第一步:去知心天气注册开发者账号查看自己的token。注册好登录进去--控制台---免费版--秘钥。这里的秘钥就是自己的token。(有兴趣的可以看开发文档,这里就不多介绍了)  第二步,下载素材包。点击文档

    2024年02月03日
    浏览(111)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包