【发布时间】:2014-01-01 07:28:35
【问题描述】:
我正在使用一个checkCookie函数来查看cookie中是否存在用户名和密码。我知道使用cookie不是一种安全的方法,但我只是在试用的基础上使用它,所以请宽容。
在第一次执行时,它会提示用户输入其用户名和密码,并使用setCookie(); 将其存储在 document.cookie 中,并且在重新执行代码时,它只会询问用户名并检查 cookie 以检索相应的密码。下面是我的 checkCookiefunction JS:-
function checkCookie() {
var username = prompt("Please enter your name:", "");
var password;
if (flag == 0) { //flag=0 shows cookie is not set
password = prompt("Please enter your password:", "");
username += "!";
username += password;
alert("Username = " + username);
setCookie("username", username, 365); //save input in cookie
} else //if cookie is already set with some username+password
{
var n = getCookie("username", username); //this retrieves the password from Cookie
if (n) {
alert("FLAG= 1 The user's password is " + n);
} else
alert("FLAG= 1 User password doesnot exist ")
}
} //checkCookie function end
现在我对上面的代码有这些问题。
1) 我正在尝试使用一个标志变量,其值最初为 0,但是每当用户名存储在 Cookie 中时,标志值应该变为 1。在 C 中,我们可以通过声明一个静态变量标志来做到这一点,但是如何在 JS 中实现这一点?
2) 加上我完整的 Javascript 允许我获取与用户名对应的密码,我如何使用它来自动填写 gmail.com 网页密码字段上的密码字段?
如果我使用getElementByID("password").innerHTML = password,它会自动填写文档的密码字段吗?
3) 当我在 JSFiddle.net 上运行代码时,会保存用户名 cookie。但是当我刷新 JSFiddle.net 时,cookie 值会被重置!如何在页面重新加载时使我的 cookie 值持久(固定)?
期待一些好的建议。感谢阅读
【问题讨论】:
-
你有什么样的后端?最好让会话代码处理密码。
-
您不应该将用户名和密码存储为 cookie,这是不好的做法。相反,您应该创建一个登录页面,将会话令牌存储在数据库中并将其设置为 cookie,然后当用户拥有会话令牌 cookie 时,您只需将其与数据库中的令牌表进行比较。
-
我正在尝试将此 javascript 与我的 Firefox 扩展程序一起使用,以便它可以存储密码并在按下 Firefox 扩展程序按钮时自动填充!我的下一个目标是制作一个跨浏览器的自动填充扩展。
标签: javascript cookies autofill