【发布时间】: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