2011-02-23 63 views
6

我正在開發網站,其中用戶使用ajax,php和使用POST方法提交憑據 ,我想保護登錄憑證不是純文本但我不想使用SSL 我可以在不使用SSL證書的情況下保護密碼憑證??如何在不使用SSL的情況下保護POST方法?

任何人都可以給我任何方法的工作示例嗎?

+0

我可以在沒有購買的情況下在php中實現SSL證書嗎? – 2011-02-23 09:28:48

+0

是的,你可以。 。例如通過http://startssl.com/他們有免費的基本證書。 – 2011-02-23 10:18:58

回答

6

如果沒有某些通道外驗證(SSL提供),則無法完全保護證書;一個man in the middle attack將永遠是可能的。

簡而言之,客戶端無法完全確定他們正在與服務器交談,而不是在兩者之間插入虛假服務器。

1

總之..沒有。

你可以嘗試,但我不認爲有一種方法,我可以想象在JavaScript或任何其他瀏覽器內的方式來保護您的發佈的數據。

問題是在加密方面,在javascript中做一個好的公共 - 私人加密對我來說聽起來不太可行。

我也很好奇爲什麼部分。 。

。 。仍在思考一些可能的方法。 。如果有東西彈出,會更新。

+2

即使是最好的JavaScript實現也是脆弱的:執行加密的腳本可能會被篡改,因爲它是通過非安全線路發送的。這就是爲什麼在JavaScript中實現SRP協議時無法保證安全的原因。 – Jacco 2011-02-23 10:10:41

0

應該可以使用沒有證書的SSL。使您容易受到中間人攻擊,但會加密傳輸的數據。

+0

這會導致流量消失,因爲瀏覽器將始終顯示證書警告。最有可能會要求用戶確認他確實想繼續訪問該網站。 – 2011-02-23 09:42:27

+0

真實,真實......但問題是,有點安全的加密有什麼意義: -/... str_rot13怎麼樣? – Raffael 2011-02-23 09:52:07

+0

有兩種安全性:那種讓你的小妹妹不知道你的祕密的東西,還有一種讓市長政府不在的東西。換句話說:要麼你有一個強大而安全的系統,要麼等待發生。換句話說:沒有這種「有點安全的加密」。 ROT13?這甚至不想保證安全,這是一個方便的混淆程序。 – Jacco 2011-02-23 10:46:18

2

您可以使用像OpenID這樣的提供商爲您處理身份驗證。供應商使用SSL來驗證憑證,然後您可以使用他們的API對其進行驗證,因此用戶從不真正向憑證發送憑證。

Getting started with OpenID

+0

除非你只使用HTTPS,否則你只是交易會話劫持的密碼嗅探 - 你在安全性方面沒有任何好處。 – Zed 2011-02-23 14:39:52

+0

這並非完全正確。會話ID可以映射到IP地址,這將使劫持更加困難。它也使得攻擊不可重複(除非攻擊者願意永遠保持會話持續)。 – 2011-02-23 16:02:16

+0

劫機者經常在同一網絡(同一所學校,同一家旅館,同一家咖啡館),因爲嗅探當地的交通是最容易的。而當你在同一個網絡上時,使用受害者的IP也是微不足道的。另外,當網絡正好在NAT後面,並且你們都共享一個IP(由於IPv4地址短缺,這些日子很常見),那麼你甚至不需要改變你的IP。不要以爲改變IP地址很難,因爲通常情況下不是,特別是如果你想要的地址在同一個子網中。 – Zed 2011-02-23 23:40:40

相關問題