Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这有多糟?在javascript中存储密码_Javascript_Asp.net_Security - Fatal编程技术网

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

这有多糟?在javascript中存储密码,javascript,asp.net,security,Javascript,Asp.net,Security,我有一个设计用于内部网络的web应用程序 当用户登录时(使用标准POST、asp.net、HTTPS),我需要存储用户名和密码,然后在一个特定页面的javascript中使用它。(以便访问和访问ActiveX控件) 这样做的一个明显问题是,当您在该页面上转到“查看源代码”时,您可以看到用户名和密码。我认为没有办法避免这种情况 我的问题是:一旦用户注销…IE7或IE8是否存储整个页面信息?如果是,我会如何看待?(验证用户名和密码是否易于查找) 如果整个页面内容没有被缓存/存储在历史记录中……那么在

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

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

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

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

如果整个页面内容没有被缓存/存储在历史记录中……那么在javascript中使用用户名/pw并没有那么大的安全隐患,因为用户必须登录才能获取数据。我说得对吗

提前感谢您的想法/意见

安德鲁

精化: 我必须创建一个ActiveX对象,…然后用javascript连接到它…我在会话中存储密码…但是我需要用javascript连接到控件:即

myactivexcontrol.credentials.username = "username";
myactivexcontrol.credentials.password = "password";

myactivexcontrol.connect();

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

您可以通过标题将页面呈现为“不可访问”,并验证这在目标浏览器上是否有效。见:


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

如果我是您,我会避免将密码存储在javascript中,如果每个人都知道,那么您就没有密码功能

我该怎么办


我将创建一个页面,它将返回我需要的数据,我将从ActiveX控件调用该页面。问题已解决。

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

另一种选择是使用加密cookies


这两个选项中的任何一个都比您现在所做的更可取。

首先,密码应该加密,如果不加密,则进行哈希和盐析(可能多次)

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

我想这太糟糕了。。。为什么不使用会话呢?这种做法会使XSS或CSRF攻击的后果非常非常严重。当用户注销你的网站后,忘掉浏览器中的内容吧——可怕的是当他们还在使用它时,浏览器中的内容!Pointy:我不使用GET变量进行任何形式的身份验证……我不认为跨站点脚本编写有多大风险。此外,这是一个内部web应用程序…鉴于
用户名和密码与登录到系统的密码一致…
我将缩小使用windows身份验证的选项范围。对不起,“系统”指的是web应用程序。即使我指的是系统,…我如何避免在javascript中用纯文本设置凭据参数?@Andrew,我现在还没有时间为您找到一个示例,但我相信ActiveX对象可能知道本地用户的凭据(包括角色)这样,浏览器根本不必传递凭据。我相信这是最好的。我会在几个小时后回顾,看看您是否需要我为您查找或创建该示例。@Andrew…出于好奇,是什么功能迫使您使用ActiveX控件?是否可以将其迁移到标准ASP.NET Web用户控件?Silverlight也许。。。jquery/Ajax???我不太喜欢“修复未损坏的东西”,但我必须承认,我不确定是否有理由保留ActiveX。。。