http安全篇
一、app与服务端交互确保来源的安全
作为一个移动互联网App,天生是需要和服务器通信的。那么,服务器如何识别客户端的身份?我们如何保证数据传输过程中的安全性?要靠两个东西:使用AppKey做身份识别,使用AppSecret校验数据。
这两个东西的定义可以参考淘宝开放平台上这种比较严肃的说法:
AppKey
客户端调用API时的唯一标识,服务器通过App Key来鉴别应用的身份。调用API接口时必须传入的参数。
App Secret
App Secret是服务端给客户端分配的密钥,用来保证应用来源的可靠性,防止请求数据被伪造。
其中,AppKey用来标识客户端的身份,通常保密性没有什么要求。就好比别人知道了我们的名字并不能假冒我们的身份一样。但AppSecret就不一样了。
先说一下App Secret的使用流程。
一个App请求中,通常包含AppKey、业务数据、时间戳等等。我们把这些信息定义为A、B、C。我们要把A、B、C这些信息发往服务器肯定不能直接扔过去,那么毫无安全性可言。通常的做法是把A、B、C和AppSecret(D)一起需要做一个校验,生成一个校验码(sign client),把校验码和A、B、C一起发送给服务器,服务器收到信息后,根据客户端发来的AppKey从数据库中检索对应的AppSecret,然后也同样把A、B、C和AppSecret(D)一起做一个校验,生成一个校验码(sign server)。如果sign client和sign server相同,就证明数据在传输过程中没有被修改过。
可以看出,整个过程中D(AppSecret)和校验过程是旁观者无法得知的。但是校验过程无非就那么几种算法,很好破解。所以说,AppSecret的保密工作就很重要了。
怎么做好AppSecret的保密工作呢?
写在代码里?Java很好编译呢。
做为资源文件?更二。
去服务器请求?请求过程会被劫持噢。
目前,最简单有效的办法还是打到.so库中。
二、登陆状态以及银行U盾原理
首先:登陆状态可以被劫持,就算用https传输,只能是确保账号密码不泄露,但是服务器返回的cookie还是会被劫持,从而劫持用户的登陆状态。
接下来我们看下支付的流程:
1、在支付的时候,首先服务器生成返回一个随机唯一的字符串gid
2、然后和请求的参数parm经过U盾公钥的加密,组成新的字符串sn(如果不加密,无法确保来源是本人操作)
3、连带请求参数parm一起发给服务器,服务器接收后,用gid和pram用私钥解密得到gn,然后用gn和sn匹配成功,则说明此请求是合法的。
4、服务器清除gid的合法性,防止重复提交。
http安全篇的更多相关文章
- 安全篇:弱密码python检测工具
安全篇:弱密码python检测工具 https://github.com/penoxcn/PyWeakPwdAudit
- 7-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(GPRS模块SSL连接MQTT)
6-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(Wi-Fi模块SSL连接MQTT) 由于GPRS是直接和GPRS基站进行连接,其实对于GPRS而言,即使不加 ...
- 6-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(Wi-Fi模块SSL连接MQTT)
5-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(配置MQTT的SSL证书,验证安全通信) 首先确定自己的固件打开了SSL,升级篇里面的固件我打开了SSL,如 ...
- 公有云Docker镜像P2P加速之路:安全篇
一.问题 在使用Docker运行容器化应用时,宿主机通常先要从Registry服务(如Docker Hub)下载相应的镜像(image).这种镜像机制在开发环境中使用还是很有效的,团队成员之间可以很方 ...
- 再探.NET的PE文件结构(安全篇)
一.开篇 首先写在前面,这篇文章源于个人的研究和探索,由于.NET有自己的反射机制,可以清楚的将源码反射出来,这样你的软件就很容易被破解,当然这篇文章不会说怎么样保护你的软件不被破解,相反是借用一个软 ...
- Web安全攻防-----TCP/IP安全篇
知识点: 掌握TCP/IP的体系分层结构 掌握TCP/IP的各一层功能特点 掌握TCP/IP的数据在各层的名称 掌握TCP/IP的体系数据的封装和解封装 1.TCP/IP协议的历史 TCP/IP的起源 ...
- linux安全篇
笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 1.限制用户su 限制能su到root的用户. 操作步骤 使用命令 vi /etc/pam.d/su修改配置文件, ...
- web开发性能优化---安全篇
1.权限管理 从模块.表单.数据审核.功能按钮全面数据安全验证及管理. 2.ip验证 数据接口访问进行IP校验 3.登录.操作日志.程序安全日志 系统所有用户登录.操作全部日志记录. 程序安全日志操 ...
- Elasticsearch 安全篇
为什么要开放外网访问Elasticsearch:1.一些插件监听使用,方便及时了解线上数据的情况,比如说head插件等2.为了HTTP直接访问,有的同学考虑到通过后台TCP查询,然后返回数据,还不如直 ...
随机推荐
- ListView系列(七)——Adapter内的onItemClick监听器四个arg参数 (转)
举个例子你会理解的更快:X, Y两个listview,X里有1,2,3,4这4个item,Y里有a,b,c,d这4个item.如果你点了b这个item.如下: public void onItemCl ...
- 基于Extjs的web表单设计器 第五节——数据库设计
这里列出表单设计器系列的内容,6.7.8节的内容应该在春节后才有时间出了.因为这周末就请假回老家了,准备我的结婚大事.在此提前祝大家春节快乐! 基于Extjs的web表单设计器 基于Extjs的web ...
- windows下基于sublime text3的nodejs环境搭建
第一步:先安装sublime text3.详细教程可自行百度,这边不具体介绍了. 第二步.安装nodejs插件,有两种方式 第一种方式:直接下载https://github.com/tanepiper ...
- BZOJ3413 : 匹配
FDUSC前刷刷题吧.. 本题每个询问就是说将询问串与主串每个后缀匹配,若匹配成功则结束,否则加上lcp的长度 对主串建立后缀树,并用主席树维护DFS序 对于每个询问串,找到最后走到的点fin_nod ...
- 利用pingyin4j 将汉字转换为拼音
jar包:http://pan.baidu.com/s/11ikCY import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcefo ...
- 《为ipad而设计 打造畅销APP》读书笔记
(1)应用应该对用户程序持ipad的变化做出响应 (2)要设计出确实出色的触摸屏交互界面需要能够触摸到自己的设计,反复触摸,直到找到感觉 (3)chipmunk physics 2D的物理图形库 (4 ...
- [Unity2D]精灵
精灵是Unity2D里面对通过图片纹理实现的游戏对象,通常会是游戏里面的玩家,敌人之类的,在Unity里面创建一个精灵的操作非常简单,直接把图片资源拖放到Hierarachy视图就可以完成了精灵的创建 ...
- QT基本使用
安装方法: ubuntu12.04下安装QT方法:http://blog.csdn.net/xsl1990/article/details/8299756 输入以下命令: sudo apt-get i ...
- MatLab 组件大全
MATLAB 矩阵实验室 7.0.1 Simulink ...
- [转载]从GetSafeHwnd()和GetSafeHandle()分析句柄和指针
GetSafeHwnd()和GetSafeHandle()的主要区别: 1.使用者不同: (1)窗体使用: GetSafeHwnd()用于获取窗体的安全句柄(即HWND),有了HWND我们就可以方便的 ...