通过websocket登录 - 这样安全吗?

时间:2016-12-05 09:41:33

标签: ssl login websocket passwords

在网页上(使用https)

  1. 客户端使用websocket连接到服务器(通过TSL安全wss)
  2. 服务器发送'准​​备用户和密码' -message
  3. 用户输入信息,客户端发送信息
  4. 服务器验证,只要连接了websocket,就知道收件人是谁
  5. 编辑: 我正在考虑上面而不是使用post方法。

1 个答案:

答案 0 :(得分:3)

对某些攻击可能是安全的,但像往常一样,有很多方法可以进入网站,我们必须从整体上评估安全性

数据库密码

从描述中不清楚但您可能会说明您所描述的设置以纯文本格式存储用户密码。

在这方面的最佳做法是计算密码的哈希值with salt并将其保留在数据库中,因此如果攻击者设法获得数据库转储,他们将需要大量时间来猜测密码基于此。

速率限制

您应该限制不成功的登录尝试,以便攻击者无法通过强力攻击轻松选择密码。

登录

此处可能存在问题的另一件事是日志记录:您需要确保凭据不会在应用程序日志文件上结束(我已经看到了信用卡号码)。

类似的担忧是在验证结束后保留​​敏感信息的时间太长,这使得它们更容易受到攻击(例如,在Java中强制堆转储并从该文件中选择它们)

SSL秘密材料

如果你没有足够的注意力来减少对ssl私钥的访问,那么有人可以发起中间人攻击。

根据您的应用服务器支持的密码套件,如果攻击者窃取密钥,以前记录的通信可能很容易被解密。抵抗的概念称为forward secrecy。您可以验证是否正确调整了自己的网络应用here

您的证书颁发机构(或其他任何其他人)可以为您的网站颁发证书给其他人,允许攻击者歪曲您(请参阅Mozilla and WoSign, Additional Domain Errors)。

CORS

您还应该设置Content-Security-Policy,以便强制浏览器代码将此身份验证信息发送到其他服务器会更加棘手。

社会工程

攻击者可以欺骗您的用户在Web工具控制台中启动一些代码 - 您可以尝试打开W​​eb控制台,例如在Facebook上看看他们对此做了什么。

新东西

每天都会发现漏洞,其中一些漏洞会在公告上发布,您应该按照堆栈的那些(例如OpenSSL)进行检索,并在适当情况下进行补丁/升级。