我知道客户端 JavaScript 中的安全性要么不存在,要么非常困难。我知道我的服务器端代码最终应该决定它向谁提供数据或从谁那里接受数据。
就是说,以下是可以做的。“好的”我的意思是如果这是一些新流行的时尚酷网络应用程序上使用的方法。知道我不会看到“Super Cool Web App Hacked, change your passwords”,我晚上能不能睡觉?由于此实施,整个 HN 和 Reddit(或人们关心的任何其他信息来源)。
如果不安全。为什么?如何获取这些信息(用户名和密码)?
如果是安全的?你有多确定?为什么它是安全的?是什么阻止了我在我现在明显无能为力的情况下获取这些信息。
欢迎部分回答。只是寻求更好的理解。
编辑
我正在考虑一些人试图窃取用户凭据的情况。我的理解是 cookie 是不安全的,因为 1.)其他 javascript(通过 XSS 或其他方式)可以访问它们,并且因为 2.)它们以明文形式传递。我认为 SSL 会解决第二个问题,假设我能够防止 XSS。现在看来,cookie 现在是安全的,对吧?
我知道一些可能导致 cookie 不安全的浏览器漏洞。这就是让我问这个问题的原因。考虑到所有使 cookie 不安全的因素,这(下面的代码)是否更好?
http://jsfiddle.net/KTastrophy/vXEjm/1/或查看下面的代码(仅在 Chrome 中测试)
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form id="login">
<div>
<label for="username">Username</label>
<input id="username" name="username" type="text" />
</div>
<div>
<label for="password">Password</label>
<input id="password" name="password" type="password" />
</div>
<div>
<input id="submit" name="submit" type="submit" value="Login" />
</div>
</form>
</body>
<script type="text/javascript">
;(function () {
"use strict";
var login, user = {};
login = document.getElementById("login");
login.onsubmit = function (event) {
event.preventDefault();
user.username = document.getElementById("username").value;
user.password = document.getElementById("password").value;
/*
use the username and password here to do
an API request over SSL using HTTP Auth
*/
}
}());
</script>
</html>