【问题标题】:Secured communication between chrome extension and a serverchrome 扩展程序和服务器之间的安全通信
【发布时间】:2016-10-23 02:25:38
【问题描述】:

我正在构建一个 chrome 扩展程序,其功能之一是联系我的服务器以在其上存储消息。只有知道用户才能做到。

我的问题是我这样做的方式不安全。我的服务器上有一个数据库,用于存储用户名和加密密码。

要向我的服务器发送消息,用户必须每次都输入他的密码,扩展程序不会记住它。如果我使用 XMLHttpRequest 联系我的服务器,我有两个选择。 我可以发送:

myServerDomain + '?message=' + myMessage + '&user=' + myUserName  + '&password=' + myPassword

并在我的服务器上加密密码以检查它是否正确。

或者我可以发送:

myServerDomain + '?message=' + myMessage + '&user=' + myUserName  + '&password=' + myPasswordEncrypted

如果 myPasswordEncrypted 与保存的匹配,则直接在我的服务器上检查。

但是对于这两种方式,我只需要访问用户的计算机,检查谷歌浏览器窗口转到控制台然后网络请求获取 myPasswordEncrypted 或 myPassword 然后发送我自己修改的请求。

我怎样才能保护它?

【问题讨论】:

  • 不加密密码,用盐对其进行哈希处理并迭代以达到 100 毫秒的持续时间。使用 password_hash、PBKDF2、Bcrypt 等函数和类似函数。请参阅 OWASP(开放式 Web 应用程序安全项目)Password Storage Cheat Sheet

标签: javascript google-chrome security google-chrome-extension


【解决方案1】:

如果密码在没有加密的情况下进入您的服务器,那么您做错了。您绝对必须做的第一件事是确保通过 HTTPS 发送密码。之后,您可以在服务器上对其进行哈希处理。在客户端上散列它几乎没有意义,这是一种非常简单的规避方法。 See here for more details

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    相关资源
    最近更新 更多