背景:
在互联网网站中,用户注册,登录几乎是每个网站的标配功能。在一般人看来一个小小的登录业务表面上看起来很简单 ,大概过程是这样的:用户在前台页面输入用户名和密码,然后后台web服务器拿到用户输入信息,在数据库里根据用户名和密码匹配一下,有数据返回,表示用户的账号和密码匹配成功,跳转到相关页面;没有则返回登录错误提示用户。这个小小的业务流程看似很简单,但是因为涉及到用户账号和密码这类关键性用户数据,常常成为黑客的攻击点。比如:csdn被人拖库,密码报出明文存储,小米网站爆出泄漏用户登录信息(小米技术人比较牛,密码泄漏后,做了两件事情,第一承认用户账号泄漏,第二泄漏后叫用户别怕,因为加密存储了密码,黑客拿到的是加密后的密码)。京东,支付宝等大的互联网网站等也有暴露过相关泄漏用户账号黑客事件。
由于程序员的开发技术水平参差不齐,项目进度,或者压根就没安全意识等因素,导致编写的用户注册,登录功能存在很大的安全风险。安全小菜鸟在这里罗列一二,以备不时之需。
遇到的安全问题:
1、 拖库
由于程序中存在sql注入漏洞,在客户端输入信息时,用户恶意输入一些sql语句,导致数据库里的用户信息被黑客窃取(有兴趣的同学可以上网搜搜怎样进行sql注入攻击,进行拖库),然后用户的账号信息就被黑客拿到,然后黑客就可以干很多事情了。
应对措施:
对存入数据库中的密码,进行加密存储。有些技术人员为了省事,直接用“原始密码”MD5加密后存储。 MD5虽然不能解密,但是原始值MD5加密后的值是不变,根据这些特性可以通过碰撞检测,字典表等猜出用户的密码。即根据字符串的组合,MD5加密后,生成加密值,存入MD5库;然后根据泄漏网站的密码从MD5库里一查,什么都有了。现在都有网站提供“MD5解密”功能,原理猜测估计是根据碰撞检测。
原始密码用MD5加密不能用那用什么了?
加盐存储:用户的密码+盐(固定格式的随机字符串)然后在用md5加密或者相应的hash函数进行加密;加密后的字符串和固定格式的随机字符串需要保存关联存入库里;下次用户登录时,使用密码+盐,再调用相应的加密算法,算出加密后的值和库里的密码值是否相同,如果相同则登录成功,否则登录失败。
盐:可以使用注册时间+用户名等,有网上专家建议使用“基于加密的伪随机数生成器”来生成盐,见http://blog.jobbole.com/61872/
好处
1、增加原始加密字符串的长度,黑客在碰撞长字符串时花费更多的时间(理论上来说还是可以破解不过破解所花费的和获得利益就需要黑客评估了)
2、增加了破解难度,如果盐值不随机,而采用固定盐值,或者短盐值,黑客也可以通过“猜测的密码”+短盐值,加密后,快速对比泄漏的密码,而获得原始密码。
除了从技术上解决完,还要加强线上安全扫描或者安全代码审查。
2、 客户端无限制登录
有些登录接口,在登录多少失败时,没有任何限制,这样就造成了黑客可以无限制调用登录接口,达到暴力破解的目的。
应对措施:加验证码。验证码也有可能被高明的黑客破解。
如果不行;加用户名登录错误次数检验;或者ip登录次数限制。
3、 Cookie被盗,xss攻击
大多数互联网应用,都用cookie来标示用户登录信息,如果cookie被黑客盗用,也就等于用户登录的令牌已经被黑客窃取,然后用户在自己的浏览器里种入cookie,冒充用户已经登录。盗取cookie一般是用xss攻击,即在页面上提交信息的字段
里加入一段恶意的js脚本,其它用户在浏览信息时,执行这段恶意的脚步,然后把浏览信息用户的cookie发到黑客服务器里,然后黑客就可以冒充被黑用户了。
应对措施:
对于用户可控输入的信息,进行展现,都做html编码。
设置httpOnly属性,防止客户端脚本访问cookie
4、 httpOnly突破,中间人攻击
设置httpOnly,或者做xss脚步处理,cookie信息就安全了吗?
no,客户端和服务端的http通信,在整个网络传输时,是明天传输,中间人可以控制路由器等网络设备,抓取这些网络设备上的数据,由于明文传输,一分析,什么都出来。
应对措施:设置secure属性,cookie只能在https 下发送到服务端,所有的http通信都加密,即使中间人截取到网络通信数据,也无法解密出数据。
相关推荐
基层央行业务网络安全管理存在问题与建议.pdf
【TPSA-21-12】关于Chrome存在安全问题可能影响Windows版本微信的通告 网络与基础架构安全 漏洞分析 业务风控 网络安全 零信任
检查发现在网管、实时监测、防火墙、防病毒等方面存在问题,网站管理部门将督促整改,探索和建立互联网信息安全管理长效工作机制。 信息安全管理工作组负责公司的信息安全工作,并对执行情况进行检查监督。各部门...
「安全架构」在现代Windows内核中发现存在20年的漏洞 - 业务风控 身份管理 勒索病毒 安全分析 日志审计 身份管理
先在业务多个用户登录,业务层处理存在排队现象现在业务层取消单例,让每个用户拥有独有的业务服务问题:1.一个账号多人请求登录,出现多个账号在线。 --dao层注册于登录前需要先判断user_pool while(uers.get...
检查发现在网管、实时监测、防火墙、防病毒等方面存在问题,网站管理部门将督促整改,探索和建立互联网信息安全管理长效工作机制。 信息安全管理工作组负责公司的信息安全工作,并对执行情况进行检查监督。各部门...
检查发现在网管、实时监测、防火墙、防病毒等方面存在问题,网站管理部门将督促整改,探索和建立互联网信息安全管理长效工作机制。 信息安全管理工作组负责公司的信息安全工作,并对执行情况进行检查监督。各部门...
详细分析了电商业务中存在的一些安全问题。 1.隐私泄漏:你注册过哪些网站,通过注册用户效验接口进行批量效验… 2.接口滥用:短信资费损失,正常短信发不出去,导致短信渠道异常被关闭… 3.撞库问题,羊毛党等一系列...
为规范公司线上系统、后台系统等业务系统的安全开发,使开发人员明确在开发过程中需要遵守的安全要求,保证最终开发完成的系统不存在明显的安全漏洞,尽可能地降低系统上线后由于代码层漏洞导致的安全风险,特制定本...
在去年QCon对我那次采访里《黑哥谈应用安全:技术的进步就是为了解决矛盾》曾经提到“业务”与“安全”的问题时说:“如果要细说可能可以直接做一次演讲了”,于是这次我就想到了这个题目! “业务”与“安全”孰重...
面临的安全威胁与风险 近年来政府门户网站被篡改、网络钓鱼、SQL注入和跨站脚本等带来严重后果的攻击 事件频频发生,严重影响了人们对政府网站公信力的认可,经过数据分析,基于Web的应 用基本都存在安全问题,其中...
iPhone被曝存在安全隐患:不点击链接也有可能被入侵 web安全 安全意识教育 业务风控 安全 安全运营
随着计算机技术的发展,在计算机上处理业务已由基于单机的数学运算、文件处理,基于简单连结的内部网络的内部业务处理、办公自动化等...本文将对计算机信息网络安全存在的问题进行深入剖析,并提出相应的安全防范措施
工作小组成员通过风险评估和等级保护差距分析,项目组确定安全问题存在于以下领域 : 信息安全方针和组织 规划和建设安全 信息资产安全管理 信息安全风险管理 系统安全维护 信息安全审计 安全事件响应 安全意识和...
“护网行动”从2016年开始,随着我国对网络安全的重视,涉及单位不断扩大,越来越多的单位都加入到护网行动中,网络安全对抗演练越来越贴近实际情况,各机构对待网络安全需求也从被动构建,升级为业务保障刚需。
信息系统安全需求分析全文共5页,当前为第1页。...但是,由于认知的差异以及技术的约束,管理层所期望的安全目标和安全信息系统的具体实现,这二者之间还是存在一定距离的。 对于管理目标,其是由非技
本文从业务的角度分析了单点登录的需求和应用领域;从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO和桌面SSO的实现、源代码和详细讲解;还从安全和性能的角度对现有的实现技术进行进一步...
滴水不漏—数据在加工处理过程中保证安全 数字化时代的安全趋势 真坏人不可怕,可怕的是假好人 高价值数据共享与安全保密的“两难” 企业要具备对风险和信任持续评估及改进的能力 经典的围墙式防护模型中,缺失数据...
1)技术人员 技术在安全中的地位 技术解决与技术关联性 当前技术解决了什么问题? 又引发了什么新的问题? 我能解决什么问题? 二、安全的困惑 网络安全体系与安全管理全文共72页,当前为第3页。 用户关心的是用 2...