我正在构建Chrome扩展程序,其功能之一是联系我的服务器以在其上存储消息。只知道用户可以做到。
我的问题是,我这样做的方式并不安全。我的服务器上有一个数据库,用于存储用户名和加密密码。
要向我的服务器发送消息,用户每次都必须写入密码,扩展程序不会记住它。如果我使用XMLHttpRequest来联系我的服务器,我有两个选择。 我可以发送:
myServerDomain + '?message=' + myMessage + '&user=' + myUserName + '&password=' + myPassword
加密我服务器上的密码以检查它是否是好的。
或者我可以发送:
myServerDomain + '?message=' + myMessage + '&user=' + myUserName + '&password=' + myPasswordEncrypted
如果myPasswordEncrypted与保存的匹配,请直接检查我的服务器。
但是对于这两种方式,我只需要访问用户的计算机,检查谷歌浏览器窗口转到控制台然后网络请求获取myPasswordEncrypted或myPassword,然后发送我自己的修改过的请求。
我如何保护它?
答案 0 :(得分:1)
如果密码在没有加密的情况下进入您的服务器,那么您做错了。您必须做的第一件事是确保密码是通过HTTPS发送的。之后,您可以在服务器上散列它。在客户端上散列它几乎是毫无意义的,它是一种可笑的简单方法来规避。 See here for more details