簡體   English   中英

“使用PHP進行HTTP身份驗證”的好處

[英]benefits of “HTTP authentication with PHP”

使用PHP進行HTTP身份驗證有什么好處(HTTP 401標頭)
而不是使用正常的表單提交身份驗證?

從安全角度來看, 基於表單HTTP基本訪問身份驗證都使用純文本來發送身份驗證數據。 (當然,HTTP Basic Auth另外使用Base64,但這並不順便。)

雖然HTTP Basic Auth會在每個請求上發送身份驗證數據,但基於表單的身份驗證僅在發送表單時發送身份驗證數據(請記住:都是純文本格式)。 通常會話用於在使用基於表單的身份驗證時維護狀態。

因此,如果您想使用其中一種,請務必使用HTTPS加密您的連接,以防止嗅探和中間人攻擊 當您選擇基於表單和會話的變體時,請務必保護會話處理,以防止或至少檢測會話欺詐,如會話劫持會話固定

最后一個變體是HTTP摘要訪問身份驗證 這與Basic之間的主要區別在於,Digest是一種質詢 - 響應身份驗證,而客戶端必須在每個請求上完成挑戰,而響應只是一個MD5哈希。 因此,不發送純文本的身份驗證數據。

您的問題有點模糊,但一般的答案是使用此方法為您提供了一個更加“RESTful”的實現,遵循HTTP已經擅長的。 在這種情況下,拋出401是其他Web服務器,Web代理和Web瀏覽器知道如何處理的東西。 如果您只是吐出一個HTML表單,它只能由最終用戶操作,而使用HTTP狀態代碼允許機器交互。

我建議查看http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol以了解HTTP的真正含義。 我認為這應該使所有這一切變得更有意義。

作為revolutiontrigger所說的一個例子,我經常在使用基於表單的身份驗證的站點的RSS源上使用HTTP auth,因為許多RSS閱讀器可以執行HTTP身份驗證,但不能執行基於表單的身份驗證。

你做網站? 如果是,那么使用<form>標簽..它更漂亮;)

您是否允許其他應用訪問應用並分發某種形式的數據? 然后使用HTTP身份驗證。

據我所知,在安全術語,速度或其他方面沒有太大區別。這只是丑陋而且更容易實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM