クライアント側の JavaScript では、セキュリティが存在しないか非常に難しいことを知っています。サーバー側のコードは、最終的に誰にデータを渡すか、誰からデータを受け取るかを決定する必要があることを知っています。
とはいえ、次のことは大丈夫です。「わかりました」とは、これが新しい人気のあるトレンディでクールな Web アプリで使用された方法であるかどうかを意味します。「Super Cool Web App Hacked, change your password!」が表示されないことを知って、夜寝てもいいですか。この実装の結果として、HN と Reddit (または人々が気にかけているその他の情報源) のいたるところに。
安全でない場合。なんで?その情報 (ユーザー名とパスワード) はどのように取得できますか?
安全なら?あなたはどれくらい確信がありますか?なぜ安全なのですか?私が明らかにできないこと以外に、その情報を取得するのを妨げているのは何ですか。
部分的な回答は大歓迎です。より良い理解を求めているだけです。
編集
ユーザーの資格情報を盗もうとするケースについて考えています。私の理解では、1.) 他の JavaScript (XSS などを介して) が Cookie にアクセスでき、2.) Cookie は平文で渡されるため、Cookie は安全ではありません。私は SSL が 2 番目の問題を処理すると考えており、XSS を防ぐことができると仮定します。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>