即使删除JavaScript中的值,html文本输入值也会显示在brwosers的转储文件中

即使删除JavaScript中的值,html文本输入值也会显示在brwosers的转储文件中,javascript,html,browser-cache,Javascript,Html,Browser Cache,在下面的代码中,我从用户的文本字段secret中获取一个敏感的信息值项,在JavaScript中,我用md5散列该值,然后删除输入的值并提交。 当我转到任务管理器并创建浏览器的内存转储文件时,我会在该文件中找到用户输入的纯文本值。我希望此值不显示在此文件中 <meta http-equiv="cache-control" content="max-age=0" /> <meta http-equiv="cache-control" content="no-cache" />

在下面的代码中,我从用户的文本字段secret中获取一个敏感的信息值项,在JavaScript中,我用md5散列该值,然后删除输入的值并提交。 当我转到任务管理器并创建浏览器的内存转储文件时,我会在该文件中找到用户输入的纯文本值。我希望此值不显示在此文件中

<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />

<form name="secretForm" onsubmit="return encryptSecret();" method="post">    
  <input type="text" class="textfield"  name="secret" id="secret">
  <input type="hidden" id="hiddenSecret">
  <input type="submit">
</form>

<script type="text/javascript">
 function encryptSecret(){
   var secret = document.getElementByID("secret");
   var hiddenSecret = document.getElementByID("hiddenSecret");

   hiddenSecret.value = encrypt(secret.value);
   secret.value = "";
   return true;
 }
</script>

正如您所见,我清除了输入的值,并使用meta标记禁用了兑现功能,但输入的值仍显示在内存转储文件中。

我认为您对此无能为力–试图通过HTML/JS影响客户端的实际RAM处理似乎有些牵强。如果您认为恶意第三方程序读取实际RAM内容会带来实际的安全威胁,那么一个简单的键盘记录器在用户输入值后立即获取该值的可能性至少与IMHO一样高,甚至更高。@CBroe那么为什么密码字段值也不存在呢?