【问题标题】:Encrypting password for pushing into form? html or javascript加密密码以推入表单? html 或 javascript
【发布时间】:2013-05-25 15:46:46
【问题描述】:

我有一个只对我们的用户锁定的公司 Intranet。一位老板要求通过我们的内部网,您必须能够单击自己进入我们的其他 Web 服务之一。我已经通过使用这个“解决”了这个问题:

<script type="text/javascript">
  function autoClick () {
    document.forms["PM"].submit();
  }
window.onload = autoClick;
</script> 
<form id='PM' action='https://ourwebapp.corporate.com/login' method='post'>
       <label for='username'></label>
        <input id='username' type='hidden','text' name='username' value='serviceaccountusername'/>
        <label for='password'></label>
        <input id='password' type='hidden','password' name='password' value='Serviceaccountpassword'/> 
        <input type='hidden','submit' value='Log in' />
    </form>

当用户点击时,这会将用户直接发送到其他 Web 服务。我知道这是一个丑陋的黑客,绝对不应该这样做。但是,我觉得我别无选择。随便。

我仍然想加密密码,以防任何恶意用户查看代码并以纯文本形式获取服务帐户密码。

该网站目前支持 java 脚本和 HTML。我想java脚本是这里选择的代码,我将如何完成这个?任何提示或解决方案?

【问题讨论】:

  • 我们是在谈论您的用户密码吗?您是否以明文形式存储它们?
  • 我认为您尝试做的事情没有意义。无论你用什么方法来解密它都会发生在浏览器上,攻击者可以只看那个代码并自己解密。
  • 我们将为此使用服务帐户,而不是用户特定帐户。它仅在仪表板上显示“公司公开”信息。但我仍然不希望用户访问服务帐户,因为它与我们的 Active Directory 绑定。
  • 您可以更改其他网络应用的登录脚本吗?如果是这样,您可以发送一次性令牌而不是实际密码
  • 这不是有效的标记 type='hidden','text'。至于加密密码,您可以尝试 base64 编码,但高级用户仍然可以轻松破解它。就像@IssacCambron 说的那样,如果你在浏览器中进行加密、解密,就可以破坏加密了。

标签: javascript html encryption passwords


【解决方案1】:

一如既往,最好的方法是使用 TLS。这将保护数据,包括传输中的密码。如果服务器不支持,您可以设置 SSL 代理,可能使用自签名证书。

如果没有 TLS,您将无法完全抵御攻击,因为任何页面(包括 JavaScript)都可能被攻击者拦截和更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 2012-08-13
    • 1970-01-01
    • 2014-04-17
    • 2017-06-29
    相关资源
    最近更新 更多