2019独角兽企业重金招聘Python工程师标准>>>
3.1 用户验证方案
3.1.1 使用HTTPS协议
HTTPS协议是“HTTP协议”和“SSL/TLS”的组合。SSL(Secure Sockets Layer),即安全套接层,是为了解决因HTTP协议是明文而导致传输内容会被偷窥和篡改的问题。SSL协议标准化后名称改为TLS(Transport Layer Security)协议,即传输层安全协议。
3.1.2 基本的用户登录方案
3.2 App通信安全
3.2.1 URL签名
3.2.2 AES对称加密
- 对称加密的原理
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
- AES算法加密App后台返回的token数据
- AES算法加密请求过程中所有的敏感数据
3.2.3 更进一步的通信安全
- 使用自定义的通信协议传输敏感信息。
- 使用RSA(非对称加密算法)加强通信的安全性。
- 使用梆梆加固、爱加密等第三方工具对App进行加密。
- 涉及到特别敏感的信息(比如支付密码),每次都需要用户输入支付密码确认,支付密码永远不在App端保存。
- 使用自主开发的输入控件输入敏感信息。
3.3 短信服务
根据价格、短信的到达率和延时情况选择合适的短信平台。
3.4 处理表情的一些技巧
- 表情在MySQL的存储
表情UTF-8编码有的是3个字节,有的是4个字节,所以一般的UTF编码(长度只有3个字节)是没法存储表情数据的。解决方案:把MySQL升级到5.5以上,然后把字符编码改为utf8mb4_general_ci;如果在不升级的情况下,将含有表情数据的字段类型改为blob。
3.5 高效更新数据
- 内容的推拉
- 数据增量更新策略
3.6 图片处理
3.7 视频处理
3.8 获取APK和IPA文件里的资源
3.9 文件系统
3.10 ELK日志分析平台
- ElasticSearch:一个基于Lucene的分布式搜索服务,用来提供存储搜索。
- Logstash:收集处理解析日志。
- Kibana:一个开源和免费的工具,其可以汇总、分析和搜索重要数据日志并提供友好的Web界面,用来报警统计展示。
3.11 Docker构建一致的开发环境
Docker是一个用于统一开发和部署的轻量级容器,让开发者打包其应用及相关的依赖包到一个可移植的容器,发布该容器到其他机器,就能很容易地实现应用的部署。
- Docker原理
传统的虚拟化技术体系在服务器操作系统上安装了多个虚拟机,每个虚拟机上通过虚拟化技术实现了一个虚拟操作系统,在这个虚拟操作系统上运行应用。
Docker的虚拟化技术体系在服务器的操作系统上有一个Docker服务在运行,在这个Docker服务上运行着多个Docker容器,每个Docker容器中运行着应用,容器与容器间的应用是相互隔离、相互独立的,但通过Docker服务占用着服务器的硬件和网络资源。