扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共2页)
在本系列的第七篇文章中,我将介绍失效的账户和线程管理类的威胁,即它们所带来的安全问题。首先我会介绍此类问题的产生和现象,然后介绍Web应用程序如何避免这种漏洞带来的安全风险。
失效的账户及线程管理涉及到很多内容。实际上,它 包含了与用户验证有关的全部内容以及与活动线程管理有关的全部内容。严重的时候,账户和线程管理的漏洞会导致用户和管理员出现接入问题。而且线程劫持攻击也会更频繁的出现,导致系统中的敏感数据丢失。
在OWASP文档中定义的此类问题一般都伴随着认证功能出现,比如退出登录,密码管理,超时,密码记忆,保密问题,账户升级等。
密码存储
在存储密码时,一定要注意密码保护。保护存储密码的方法有两种,哈希数列演算或者对密码加密。当对密码采用哈希算法后,会产生一个字符串,这个字符串又叫哈希数列,是无法通过逆向运算找到原始密码的。这是密码存储中一个相当安全的方式。
加密方式有些类似于哈希数列演算方式,不过通过某种算法可以从加密后的字符串中破解出原始密码。虽然这种方式要比明文保存密码安全的多,但仍然给黑客留下了破解密码的可乘之机。
最后要记住,千万不要将密码直接写入Web应用程序的源代码中。
保护传输凭证
不论你如何保护用户的密码或其它信息,用户在访问服务的过程中,难免会出现各种问题,而这些问题很可能为黑客获取密码制造了机会。
为了保护信息的安全,首先要遵守的规则就是永远不要用明文形式发送密码。很多开发人员都会采用发送密码哈希字符串的方式代替直接发送密码,这是一个不错的方式。服务器会寻找与之匹配的密码哈希字串,如果字串相符,则确定用户身份。
但是如果黑客在客户机向服务器发送哈希码的时候拦截到了哈希码,黑客就可以从数据包中提取这个哈希码,并通过用户ID以及这个哈希码从服务器获取用户的信息,并直接访问一些需要身份验证才能看到的资源。
因此,在这些情况下应该采用SSL连接,加密全部线程。这样黑客就不会轻易的定位到数据包中的用户ID和密码的哈希数列了。SSL也应该用在其它需要在客户机和服务器间传递敏感信息的情况。
保护线程IDs
这个漏洞与传输凭证过程中存在的漏洞相似,如果黑客在数据包中截获了用户的线程ID,就可以对其进行劫持。Session hijacking就是这样的工具,可以利用合法用户的访问线程,访问任何对合法用户来说有效的资源。防止这种攻击应该遵循一下原则:
1.Session IDs 要足够复杂.
2.Session IDs 在线程过程中要经常变换.
3.系统不能接受用户指定的线程IDs.
4.Session IDs 不能包含 URLs.
就算有以上保护措施,还是应该采用SSL连接来保护所有用户线程。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者