扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
不同的应用对于服务器有不同需求,APP选择服务器时需要注意几个方面:
成都创新互联专注于企业营销型网站建设、网站重做改版、海陵网站定制设计、自适应品牌网站建设、H5建站、电子商务商城网站建设、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为海陵等各大城市提供网站开发制作服务。
一、根据规模的大小,来选择合适的配置与带宽,比如说新开发的APP,前期访问量小,可以用一个普通配置的云服务器就能满足需求,但如果是较大规模或者数据量比较多的APP,则需要用较高的配置和带宽。
二、根据用户分布区域来选择机房线路,大多APP是面向全国各地的用户,所以在服务器线路方面,推荐用多线或者BGP线路。
三、后期扩展性。如果你选择的是云服务器,基本上都是支持中途升级高配置的,但如果是选择的物理服务器,就需要考虑后期升级的便利性,毕竟随着APP规模的提升,后期升级配置以及带宽也是很常见的操作。
四、服务商的资质以及服务,APP是需要全天不间断运行的,所以选择一个有信誉,资质齐全,服务有保障的IDC服务商,在服务器出现问题时能第一时间响应并解决,非常重要。
粗略地分析, 登录机制主要分为登录验证、登录保持、登出三个部分。登录验证是指客户端提供用户名和密码,向服务器提出登录请求,服务器判断客户端是否可以登录并向客户端确认。 登录认保持是指客户端登录后, 服务器能够分辨出已登录的客户端,并为其持续提供登录权限的服务器。登出是指客户端主动退出登录状态。容易想到的方案是,客户端登录成功后, 服务器为其分配sessionId, 客户端随后每次请求资源时都带上sessionId。
上述简易的登录验证策略存在明显的安全漏洞,需要优化。
客户端第一次发出登录请求时, 用户密码以明文的方式传输, 一旦被截获, 后果严重。因此密码需要加密,例如可采用RSA非对称加密。具体流程如下:
再仔细核对上述登录流程, 我们发现服务器判断用户是否登录, 完全依赖于sessionId, 一旦其被截获, 黑客就能够模拟出用户的请求。于是我们需要引入token的概念: 用户登录成功后, 服务器不但为其分配了sessionId, 还分配了token, token是维持登录状态的关键秘密数据。在服务器向客户端发送的token数据,也需要加密。于是一次登录的细节再次扩展。
在最原始的方案中, 登录保持仅仅靠服务器生成的sessionId: 客户端的请求中带上sessionId, 如果服务器的redis中存在这个id,就认为请求来自相应的登录客户端。 但是只要sessionId被截获, 请求就可以为伪造, 存在安全隐患。
引入token后,上述问题便可得到解决。 服务器将token和其它的一些变量, 利用散列加密算法得到签名后,连同sessionId一并发送给服务器; 服务器取出保存于服务器端的token,利用相同的法则生成校验签名, 如果客户端签名与服务器的校验签名一致, 就认为请求来自登录的客户端。
1.3 TOKEN失效
用户登录出系统
失效原理:
在服务器端的redis中删除相应key为session的键值对。
App因为要实现自动登陆功能,所以必然要保存一些凭据,所以比较复杂。
App登陆要实现的功能:
这里判断时间,主要是防止攻击者截取到加密串后,可以长久地利用这个加密串来登陆。
不用AES加密,用RSA公钥加密也是可以的。AES速度比RSA要快,RSA只能存储有限的数据。
用HTTPS通信,另外APP往服务器接口发送的参数带token,还要加上签名,服务器端验签名(以防参数被篡改),校验token;同时加上时间戳,防止重放。(签名算法、密钥的分配安全存储要设计好)
对服务器接口要有监控,监控到异常情况要有处理方案。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流