For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
网络安全问题随着互联网的不断发展而越来越受到企业与用户的关注,下面我们就通过案例分析来简单了解一下,常见的网络安全问题都有哪些。
密码
用户存储安全的基础是保护用户密码。让我们通过以下选项,一步一步地进行优化:
如果你用明文存储用户密码,那么如果有人访问了你的数据库,所有用户账号就泄漏了。这可不好。
让我们对密码进行哈希。这稍微好一点,但如果攻击者手头有一个彩虹表(rainbowtable)——一个将普通字符串映射到其哈希值的表——那么将哈希值转换为普通字符串就是一个非常简单的问题了。
一旦我们在哈希值中加了盐,情况就会大大改善。(加盐是在每个密码中加入一个秘密的随机字符串。)除非攻击者获得了你的服务器的访问权——这时,抵抗已是徒劳——发现了你的盐罐,并为该特定的盐计算一个彩虹表,否则他们无法将数据库中的哈希值翻译成普通字符串。然而,有一个极端情况。如果Elsa的密码恰好与Anna的密码相同,那么它们将映射到相同的哈希值。这似乎可以接受,但如果你希望觉得自己是个专家呢?
你可以为每个用户使用不同的盐。当然,你需要把盐和哈希值放在一起,这样你就可以验证登录时发送的凭证,这没什么。渐入佳境!如果攻击者有机会获得一些令人印象深刻的计算能力呢?
这时,密钥衍生函数就可以发挥作用了。这些函数实现了密钥扩展,它们接收一个(可能很弱的)口令,并故意使其散列值计算变得昂贵,也就是说,使蛮力不那么有用。pbkdf2和scrypt就是这样的两个函数。
身份验证
如果你没有登录,或者目前没有提交敏感信息,就没有什么遭受攻击的危险。只有当你访问一个服务并进行认证时,事情才会变得有趣起来。
Cookie中的会话
Cookie是在服务器上创建并存储在用户设备(通常是浏览器)上的小数据块。
它们的主要特点是,一旦创建,就会随着特定域名的所有请求在客户端和服务器之间传递,而你不需要为此做任何工作。标准的会话流程相当简单:
提交证书。
在服务器上创建一个随机的sessionId,将其保存在数据库中,并在Cookie中发送回来。
然后,浏览器在随后的请求中自动包括上述Cookie,使服务器能够验证请求是否与它们声称的一样。
令牌
你可能已经用过JWT,但在基于令牌的身份验证中,令牌可以是任何东西,只要能够验证是你的服务器发出的就可以。换句话说,它需要一个可信赖的签名。
由于这种方法没有使用任何标准机制(像Cookie那样),所以要由客户端来确保令牌在所有身份验证请求中都存在。因此,流程类似下面这样:
提交证书。
在服务器上创建一个经过签名的令牌,并发回客户端。
将令牌保存在客户端,通常是本地存储中。
手动将令牌附加到未来的请求上。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。