我在用戶登錄表單上使用加密技術來避免以純文本傳遞密碼。我在PHP會話中存儲一個唯一的挑戰值,在HTML表單隱藏字段中包含相同的值,然後在提交密碼之前使用基於JavaScript的SHA1-1腳本來散列密碼。 (然後使用存儲在會話變量中的挑戰與服務器端的相同比較)。IE 9表單提交崩潰
我對上述本身沒有任何問題,但我認爲最好解釋爲什麼我需要這樣做。
我提交表單是這樣的:
var password = sha1(document.forms['loginform'].password.value);
password = sha1(document.forms['loginform'].challenge.value + password);
document.forms['loginform'].challenge.value = '';
document.forms['loginform'].password.value = password;
document.forms['loginform'].style.display = 'none';
document.forms['loginform'].submit();
的問題是5日線出現。我想從視圖中隱藏加密的密碼值,因爲如果我不這樣做,我會有人說'那不是我的密碼','我不喜歡那樣'等等。
的事情是,設置顯示爲「無」來提交之前,似乎崩潰Internet Explorer 9中,像這樣的消息:
Problem Event Name: APPCRASH
Application Name: iexplore.exe
Application Version: 9.0.8112.16421
Fault Module Name: MSHTML.dll
所以,我想知道是否有人有一個更好的方式去關於這樣做。也就是說,在提交之前隱藏JavaScript更新表單值是否有一種很好或「正常」的方式?
感謝
編輯: 現在我設置密碼字段文本的顏色相匹配的背景。這有點破解。我不想將下面的答案標記爲答案 - 我不完全同意,這有點像我自己的問題。 (我會,而不是永遠保持開放狀態)。這不是什麼大問題。我會留下一點。
感謝您的回答。不,我沒有以純文本格式傳遞密碼,我將它們與唯一代碼結合在一起並進行哈希處理,這必須是通過HTTP標頭中的'apple'傳遞出來的一步。數據保護是我關心的問題,同樣可以防止這個特定網站的安全漏洞。 – stackuser10210 2012-01-27 08:38:32
@ stackuser10210我的意思是如果你不使用https,沒有什麼可以是安全的。你的http請求可以偷走它的內容。 – xdazz 2012-01-27 08:41:47
這是一個額外的措施,在網吧等時代相當值得。這不是我的發明。雅虎一直在使用類似的電子郵件登錄一段時間(我認爲每個登錄都有HTTPS)。我認爲他們可能使用異步帖子(不確定)。我不想訴諸於此。 – stackuser10210 2012-01-27 08:49:05