我有一个用双向加密存储在数据库中的用户名和密码。我想用这些来登录一个像这样的JS表单的网站:
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", "http://www.someloginscript.com/");
var f = document.createElement("input");
f.setAttribute("type", "text");
f.setAttribute("name", "username");
f.setAttribute("value", myUser);
var f1 = document.createElement("input");
f1.setAttribute("type", "text");
f1.setAttribute("name", "password");
f1.setAttribute("value", myPass);
form.appendChild(field);
form.appendChild(f1);
document.body.appendChild(form);
form.submit();
我想提交带有密码的表单,但为了做到这一点,我需要先解密它。如果我解密它,那么通过'Inspect Element'功能可以看到密码。我显然不想要这个。
我偶然发现了一个名为www.clipperz.com的网站,该网站正是我想要的,但我不确定如何。我是否需要从http://sourceforge.net/projects/clipperz/实施其开源加密库?或者它是烟雾和镜子使它看起来更安全吗?
谢谢!
编辑:我现在知道没有安全的方法可以做到这一点。使用curl是一种更安全的方式来提交此表单吗?这样我可以保持密码服务器端的所有处理吗?
答案 0 :(得分:2)
您还没有完全指定它,但听起来您尝试在一个站点上使用Javascript来自动登录到另一个站点?那是对的吗?这听起来好像您想要为所有用户使用一般登录,您需要阻止用户查看。
我认为这不会像你想要的那样可行。问题是浏览器上的用户可以通过Firebug等工具完全访问Javascript代码及其使用的所有数据。使用这些工具,他甚至可以在页面加载后修改代码。
简而言之,没有让Javascript处理数据而不让用户能够看到它的方法。
我建议更好的方法可能如下:
站点1向站点2发送消息,通知它想要登录用户。它告诉用户IP地址,它想要使用的登录详细信息以及其他相关细节。
站点2使用令牌代码响应站点1,站点1随后将其发送到用户的浏览器。
用户浏览器上的Javascript代码然后将令牌发布到站点2而不是登录名和密码。
站点2将其识别为它刚刚提供给站点1的令牌,并且它来自它被告知的IP地址,并将用户登录为好像已收到一组正常的登录详细信息
此过程显然要求您在站点1和站点2上编写代码,因此您必须具有对它们的完全访问权限。如果站点2是第三方系统,那么您可能需要提出其他内容。
答案 1 :(得分:1)
无论您最终发送到第三方网站的哪些信息,都必须在某个时候提供给用户的浏览器 - 此时他们将能够检查并获取信息。
或者,他们可以查看从他们的机器发出的HTTP请求。
关键是,如果用户的机器上的信息在任何时候都需要在其机器上处于解密状态,则无法向用户隐藏这些信息。