这有多糟糕?将密码存储在javascript中

How bad is this? storing password in javascript

本文关键字:存储 密码 javascript      更新时间:2023-09-26

我有一个设计用于内部网络的web应用程序。

当用户登录时(使用标准POST、asp.net、HTTPS),我需要存储用户名和密码,然后在一个特定页面上以javascript形式使用。(为了访问和ActiveX控件)

这样做的明显问题是,当你在该页面上"查看源代码"时,你可以看到用户名和密码。我认为没有办法避免这种情况。

我的问题是:一旦用户注销…IE7或IE8会存储整个页面的信息吗?如果是,我将如何看待它?(验证用户名和密码是否容易找到)

如果整个页面内容未缓存/存储在历史记录中。。。。那么在javascript中使用username/pw并不是一个很大的安全漏洞,因为用户必须登录才能获得数据。我说得对吗?

提前感谢您的想法/评论!

Andrew

阐述:我必须创建一个ActiveX对象,。。。然后用javascript连接到它。。。我将密码存储在会话中。。。但我需要将它们放在javascript中,以便连接到控件:即

myactivexcontrol.credentials.username = "username";
myactivexcontrol.credentials.password = "password";
myactivexcontrol.connect();

用户名和密码与web应用程序的登录一致。。。

您可以通过标题将页面渲染为"不可访问",并验证这在目标浏览器上是否有效。请参阅:web浏览器是否会通过https 缓存内容

您可以通过故意清除缓存来测试这一点,验证缓存目录是否为空,然后运行用例以查看留下了哪些跟踪。

这是一种非常糟糕的做法,风险有限,因为您在"内部"使用它。但是,如果您的内部网络位于windows域上,则可以使用windows身份验证来验证您的用户凭据。

另一种选择是使用加密的cookie。

这两种选择中的任何一种都比你正在做的更好。

如果我是你,我会避免用javascript存储密码,那么如果每个人都知道,你就没有密码功能。

我该怎么做

我会创建一个页面,返回我需要的数据,我会从ActiveX控件调用那个页面。问题解决了。

首先,密码应该加密,如果没有加密,则应该进行散列和加盐处理(可能多次)。

您可以不使用SESSION来跟踪登录的用户而不是存储密码吗?如果出于某种原因必须存储密码,请将其存储在SESSION或数据库中。