2012-02-21 14 views
5

我正在實施一個REST服務器。哪個更好,將用戶名/密碼作爲HTTP頭或HTTP正文中的參數傳遞?

我將收到來自用戶的每個請求的用戶名,requestid和密碼。

我有兩種選擇,我可以要求用戶在http正文或http標頭中傳遞這三個參數。

哪個會是更好的實施方式,爲什麼?

在此先感謝。

+0

您不應以純文本格式發送身份驗證憑據。你想達到什麼目的?用戶認證,會話管理? – 2012-02-21 19:04:30

+0

每個訪問的用戶認證。並且我們可以在頭部和身體中發送加密值。所以哪一個會更好。 – Sarada 2012-02-21 19:08:13

回答

2

標題!

如果我理解你的問題,你有什麼,你會通過每一個請求。這意味着如果您想要支持像GET和HEAD這樣的安全請求,那麼您只有兩種選擇:HTTP標頭或URL(通常通過查詢參數)。

由於它包含驗證信息,因此應避免將其放入URL中。除此之外,你說它是加密的,並且一個額外的保護層可以通過SSL來實現,但頭部和主體同樣安全/易受攻擊,所以從安全角度來看它沒有任何區別。

將它放在標題中也會將其與應用程序狀態以及媒體類型分離,這是一件好事。如果你想支持JSON,XML和XHTML表單,它對你的認證參數沒有任何影響。

+0

謝謝Jhericks。它澄清了我的觀點。 – Sarada 2012-02-21 20:21:25

相關問題