在做一个app的注册流程的时候有什么要注意的吗? 怎么防止用户注册信息被别人截取? ssl吗? ssl后传输的数据还需要另外加密吗?
注册流程可能需要app,web通用。
在做一个app的注册流程的时候有什么要注意的吗? 怎么防止用户注册信息被别人截取? ssl吗? ssl后传输的数据还需要另外加密吗?
注册流程可能需要app,web通用。
前段时间我遇到了类似的问题
首先要说明几点,
https也不是万能的
安全的前提是建立在对某些基础设施的信任上的
几乎所有的网站都无法抵御中间人攻击
客户端对于服务器是不可信的,就像两个人在说一些秘密,其中一个人是个大嘴巴,这样无论两个人说话的地方如何隐蔽,交谈的内容都不安全。
在我看来通常的加密手段只是增大了破解的难度,比如采用md5简单混淆一下和rsa不对称加密,但是还要考虑的是加解密效率问题
考虑加不加密、采用那种加密方式的时候可以算一算帐,例如你的用户数据值得黑客去破解么?如果不加密,用户会不会感到不安全,从而影响到产品的用户量?
一般来说,用户的密码数据是不要明文存放到数据库中的,通用的方式是md5+salt。
至于用户密码是否明文传输到服务器,最好还是加上,因为有些用户会认为你将他们的密码明文传输到你的服务器上是要恶意保存,然后挪作他用(我遇到过。。。)。
在客户端可以通过多次的md5(pwd)混淆一下,但是用处不是很大,撑死了就是有人截取到了也不知道明文密码是什么(想知道还是可能的,根据混淆规则生成彩虹表,不过这样高成本的东西应该没人傻啦吧唧的去做)
采用rsa之类的算法进行加密,当用户登录或者注册的时候,首先请求服务器获得一个rsa公钥和servertime,然后发送登录数据的时候加入servertime并使用rsa公钥加密,数据到达服务器后再使用私钥解密(我就采取了这种方式,虽然我一直认为这是在脱了裤子放屁,但是。。。),不过要注意斟酌rsa的加解密效率对服务器负载的影响。
最后,以上提到方法仍然无法抵御中间人(重放)攻击,所以简单粗暴一点,直接上https也是可以的,不过还是那个问题,考虑https的效率对服务器负载的影响。
啊,差点忘了最重要的一点,如果你的app是银行或者金融方面的,就把我上面的话当屁放了吧,这么高精尖的东西我没接触过,不敢乱言。
个人愚见,谨慎采纳
最好是https