使用HTTP authentication with PHP(HTTP 401標頭)的好處是什麼
而不是使用正常形式提交身份驗證?「HTTP身份驗證與PHP」的好處
回答
從安全的角度看,既用於發送所述認證數據的基於形式和HTTP Basic Access Authentication使用純文本。 (當然,HTTP Basic Auth另外使用Base64,但這並不困難。)
雖然HTTP基本身份驗證在每個請求上發送身份驗證數據,但基於表單的身份驗證僅在發送表單時發送身份驗證數據(請記住:以純文本)。通常會話用於在使用基於表單的身份驗證時維護狀態。
所以,如果你想使用其中之一,一定要加密你的連接使用HTTPS,以防止嗅探和man-in-the-middle attacks。並且,當您選擇基於表單和會話的變體時,請確保您的會話處理安全,以防止或至少檢測會話欺詐,如Session Hijacking和Session Fixation。
最後一個變體是HTTP Digest Access Authentication。這和基本的主要區別在於,摘要是challenge-response authentication,而客戶端必須對每個請求執行挑戰,並且響應只是一個MD5哈希。所以沒有純文本驗證數據正在發送。
你的問題有點含糊,但一般的答案是,使用這種方法給你一個更「RESTful」的實現,遵循HTTP已經很擅長。在這種情況下,拋出401是其他Web服務器,Web代理和Web瀏覽器知道如何處理的事情。如果你只是吐出一個HTML表單,它只能由最終用戶操作,而使用HTTP狀態代碼則允許機器交互。
我建議查看http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
以瞭解HTTP的真正含義。我認爲這應該讓所有這些都變得更有意義。
您製作網站?如果是的話,然後使用<表格>標籤..它更漂亮;)
您讓應用程序被其他應用程序訪問和派遣某種形式的數據?然後使用HTTP認證。
據我所知,在安全性,速度或其他方面沒有太大的區別..它只是醜陋而且容易實現。
作爲革命性觸發者說的一個例子,我經常在RSS源上爲使用基於表單的身份驗證的站點使用HTTP身份驗證,這很簡單,因爲許多RSS閱讀器可以執行HTTP身份驗證,但無法執行基於表單的身份驗證。
- 1. Php重定向與http身份驗證
- 2. PHP HTTP身份驗證驗證失敗
- 3. 使用PHP身份驗證的HTTP身份驗證
- 4. 與基本身份驗證的HTTP基本身份驗證
- 5. HTTP簡單身份驗證與POST表單身份驗證
- 6. 角度http身份驗證與$ http transformResponse
- 7. PHP中的外部HTTP身份驗證
- 8. Python身份驗證和HTTP cookie處理
- 9. 在iOS中處理http身份驗證
- 10. TouchJSON與基本的HTTP身份驗證
- 11. 與NSURLSession的HTTP基本身份驗證
- 12. Web API - HTTP標頭中的身份驗證憑證與SSL身份驗證?
- 13. JPG,HTTP基本身份驗證和PHP
- 14. php進程http身份驗證
- 15. 禁用其他身份驗證的HTTP基本身份驗證
- 16. http基本身份驗證與vert.x
- 17. HTTP基本身份驗證與Authlogic
- 18. WCF與Http基本身份驗證
- 19. HTTP摘要身份驗證
- 20. HTTP身份驗證cPanel
- 21. 使用HTTP身份驗證
- 22. 基本HTTP身份驗證
- 23. http身份驗證緩存
- 24. gSOAP HTTP身份驗證
- 25. HTTP身份驗證VS OAuth VS HttpClient身份驗證
- 26. Authlogic - 通過基本HTTP身份驗證進行身份驗證
- 27. Windows與Linux HTTP身份驗證。 javax.net.ssl.SSLPeerUnverifiedException:沒有通過身份驗證
- 28. AngularJS $ http,CORS和http身份驗證
- 29. RestKit - 處理身份驗證
- 30. 身份驗證與facebook後的身份驗證
使用基於會話的(和基於表單的)身份驗證,這首先更加方便。你可能想看看https://github.com/delight-im/PHP-Auth,它既是框架不可知的,也是數據庫不可知的。 – caw 2016-09-22 03:36:05