2010-07-04 165 views
1

我在寫一個登錄的過程中提交登錄信息時/註冊形式爲我的MVC網站現在面臨有關安全和AJAX的問題。似乎越來越多的熱門網站正在使用JavaScript來處理登錄,並且許多網站使用非https網址(www.giantbomb.com和www.gametrailers.com命名爲兩個)。我想知道是否有一種方法可以讓我做類似的事情,但也可以使用SSL。的安全預防措施與AJAX

我讀其他職位,這是可能的,如果JavaScript是從安全網頁運行,但如果這是不是一種選擇,那麼我將如何去做出儘可能安全的交易?

謝謝你的時間!

+0

這是可以做到的加密使用JavaScript。 IIRC,你甚至可以做公鑰加密,這可能是最好的方法。我太累了,不能挖掘一些鏈接,但我想我會提供基本的想法。 – 2010-07-04 13:20:48

回答

0

正如喬治·瑪麗安提到,您可以使用基於JS-公鑰加密。有severalimplementationsavailable。但是您需要知道,這不是SSL的替代品。主要困難是以安全的方式分配公鑰。您可以提高被動竊聽的安全性,但除非您可以安全地傳輸密鑰,否則活動的MITM(man-in-the-middle)攻擊仍然是可能的。

還銘記記住這必須啓用JavaScript爲它工作,所以你需要一個明文備用。

如果您需要確保事物真正安全,請使用SSL。

+0

就其性質而言,公鑰不需要以安全的方式分發。這就是它的優點,公鑰由JS代碼用來爲服務器加密,而服務器使用私鑰解密。 – 2010-07-04 14:25:53

+1

他們需要以不能被第三方修改的方式進行分發。 – igorw 2010-07-04 15:12:21

+0

啊,是的。如果第三方可以用公鑰替換公鑰並攔截加密的流量,他們就可以解密它。 – 2010-07-04 15:54:29

1

我很害怕,但我真的沒有給你一個肯定的回答。不要依賴JS來保證安全。如果攻擊者通過純文本HTTP發送「安全JS」,攻擊者可以用惡意攻擊替換「安全JS」。惡意JS可以向攻擊者發佈用戶憑證,然後將您的「安全JS」注入用戶瀏覽器。最終用戶和您的Web服務/應用程序永遠不會知道某人已經捕獲了用戶憑證。通過「安全JS」我的意思是JS的任何實現 - 無論是不對稱還是對稱。

0

我不推薦這個,因爲它即使你把它安全,它的外觀給用戶喜歡它是沒有的。訓練用戶在Web瀏覽器中查找掛鎖,如果它不在那裏,不要相信它。

(我敢肯定有人會指出我在估計用戶的教育,是的,並不是所有的用戶都知道這一點,但許多人。)

相關問題