2012-02-17 51 views
1

我也碰到過很多網站這要麼使用的doGet()或doPost()方法來處理用戶名和密碼字段中輸入到登錄形式,但因爲在我看來,當我們使用doget()時,我們必須對用戶名和密碼字段進行加密,因爲它們被附加到不在dopost()中的URL中(工作稍微少一點似乎..phewww)。哪種方法最好使用一個登錄表單的doGet()或doPost()

不過,我有點擔心,因爲使用的doPost()是否安全可靠或不作爲用戶名和密碼字段是高度敏感的數據。

任何人能告訴我的優點或者使用這兩種使用的登錄表單的優缺點?

+2

IMO你應該使用doPost()。在使用doPost()時,您還必須加密密碼。更精確地使用SSL。 – 2012-02-17 04:10:38

+0

@哈利好吧謝謝你的快速回答,但是,我沒有理解爲什麼我需要加密密碼,即使我通過dopost的請求主體發送它...我的意思是問:「它是可以破解的嗎? 「?? – Nav 2012-02-17 04:13:12

+0

我希望有一個系統來說明爲什麼人們在沒有指定理由的情況下拒絕投票,而當問題是絕對正確時>:( – Nav 2012-02-17 04:20:06

回答

2

POST有更高的開銷(稍微,如果我們誠實,但都累加起來),但它不會成爲URL的一部分,所以不能被偶然的觀察者看到在用戶的肩膀上 - 而GET可以。但是,這兩個可以同樣容易被截獲在網絡上,這樣是不安全的,如果你不使用任何加密... GET只是更糟,因爲它可以由任何人沒有任何蓄意讀取攔截密碼

如果您使用GET,用戶可以通過更改URL來輕鬆修改輸入,這可能是好事或壞事,您必須根據具體情況進行決定。帖子不能被用戶輕鬆修改。

訣竅是在發送密碼或敏感數據之前加密它。這樣一來,如果數據包被截取,這樣做幾乎沒有風險,並且由於您已經對字符串進行了加密,因此您不介意是否有人在用戶的肩膀上讀取它......因此,您可以使用GET並節省一點點時間開銷的代價是較長的,不太漂亮的URL。在這個階段,兩個都不是比另一個更安全。

在一個理想的世界的安全,你會使用POST與SSL這樣,沒有什麼是在URL中非常容易被攔截,而被攔截沒有任何東西可以很容易地使用。

+0

@John另外1件事情..使用SSL將不必從verisign或某人購買SSL證書嗎?是否有其他選擇? – Nav 2012-02-17 04:40:07

+0

我在理想的世界中說過;-)加密非常可能沒有SSL。在企業環境中,您幾乎總是希望使用SSL,因爲它會增加對您公司的信心,但是Java具有足夠強大的加密功能。看看密碼學,密封對象和鍵類,作爲一個起點(儘管有其他可能更適合的選擇) – 2012-02-17 04:43:53

+0

ohh謝謝你約翰..你救了我的一天:) – Nav 2012-02-17 04:45:31

1
  1. 您應該使用doPost()方法,因爲此方法不會在url結尾處添加您的用戶名和密碼。
  2. 如果你要使用doGet()方法,這將追加url.So的用戶名和密碼,它到底是不是secure.So我建議你去doPost()方法是更安全的。 如果你想要更多的安全性,你也可以使用SSL(安全套接字層)。
+0

直到我看到一些大公司使用doget而不是dopost。如果你注意到Facebook和Orkut也使用doget,但查詢字符串肯定是加密的,所以我想知道是否有這樣的原因? – Nav 2012-02-17 04:22:43

相關問題