最近我在處理用domain\username:password的格式讓user登入
而http digest authentication的運作方式是client端會拿
username和password以及其他驗證資訊算出一組checksum交給server端驗證
server端再根據client端傳來的username和其他驗證資訊算出一樣的checksum讓驗證通過
整個程序是定義在RFC2617
但是當username包含escape字元時就有點模糊了
如:domain\username
username傳輸到server端時必定是escaped那是無庸置疑
但是client端到底是拿escaped的username來算checksum還是unescaped來算呢
就我google的結果來看...
http://ppt.cc/m064https://code.google.com/p/chromium/issu ... l?id=87224https://lists.cs.columbia.edu/pipermail ... 28000.html似乎還沒有一個清楚的定論
實作驗證方面
發現firefox, IE, chrome的行為都是用unescaped username算checksum (domain\username)
只有linux上的curl是拿escaped下去算 (domain\\username)
不知道有沒有哪位先進大大也在這方面碰到過釘子
而最後是採用哪一種方式實作server端驗證呢?