javascript - 如何在共享服务器上安全地存储用户名和密码?

标签 javascript security encryption passwords

我有一个简单的 HTML5/JavaScript 站点,它读取包含电子邮件帐户配置的本地(对于应用程序)XML 文件,并使用单次登录在单个页面上显示来自多个邮件帐户的邮件。本质上是一个邮件整合器。问题是,该网站托管在云中由网络主机管理的共享服务器上。我不希望电子邮件帐户凭据以纯文本形式保存在配置文件中。我正在绞尽脑汁试图想出一个相当安全的解决方案,但到目前为止还没有运气。

我可以加密 XML 文件中的凭据,但我不知道如何在 JavaScript 代码中不显示解密路径的情况下实现 key 。

我在这里要求的不是代码,而是帮助我指明正确的方向,设计一种实现这一目标的方法。如何才能让主机上的某些技术人员无法简单地打开我网站中的文件并访问电子邮件帐户?

最佳答案

如果我理解正确,您需要检索存储的密码,才能连接到托管邮件帐户。这意味着,您不能使用单向哈希,而只能加密数据。

现在你面临的问题是,服务器必须能够解密帐户信息,而服务器能做的所有事情,攻击者也能做。因此,您需要一种方法,使服务器本身无法解密数据。

一种可能性是,您使用用户定义的主密码加密所有数据。该密码不应存储在服务器上,让用户在需要使用该服务时输入该密码。由于帐户信息只能使用此密码解密,并且无法从服务器访问该密码,因此帐户信息应该是安全的。这也意味着无法重置密码。

当然,存储帐户信息是一件微妙的事情,如果您想要承担这方面的责任,我真的会再考虑一下。有很多事情需要考虑,例如 SSL、XSS 等等。

关于javascript - 如何在共享服务器上安全地存储用户名和密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15452684/

相关文章:

javascript - 是什么让 Date 构造函数接受 momentjs 对象?

javascript - Jquery ui 选项卡换行到另一行

iphone - 在 iOS 上存储身份验证 token

algorithm - 刮刮卡号和序列号生成器

encryption - 连续的 OpenSSL PKCS12 生成产生不同的私钥内容

java - 如何从 RSA 1024 位加密中获得较短的输出(密文)结果?

javascript - Javascript 中的无限循环问题

javascript - 用正确的数字创建一条路径

php - 为 capthca 创建不可读的 PHP 页面

vb.net - 如何使用 RijndaelManaged 和 PKCS5 填充在 vb.net 中加密字符串?