2008-11-27 162 views
1

我正在開發一個web服務+ AJAX接口,並且我很擔心身份驗證。這一刻,我將用戶名和密碼作爲參數傳遞給webservice,但我擔心這種方法非常不安全。我被告知ssl可以解決我的問題,但我想要更多的選擇。Webservice身份驗證

我的web服務用PHP編寫的,我的界面是PHP + AJAX。 Web服務從POST或GET接收參數,然後retreives xml(將來也許我會使用JSON)

回答

1

AJAX請求與普通請求沒有區別。

既然你有一個AJAX接口,我想你可以有一個頁面,用戶登錄項。他們登錄時在瀏覽器中存儲cookie。這個cookie隨後可以隨每個AJAX請求一起發回。

你的PHP腳本可以「認證」使用cookie,正是因爲它會與正常的請求AJAX請求。

+0

要小心。某些IE版本的「沙盒」AJAX請求來自主頁面。然後Cookie不可用... – 2008-11-27 15:46:43

0

如果我理解這個問題,您有1)PHP的AJAX職位,2)PHP調用Web服務。 您應該擁有步驟1的SSL證書。對於步驟2,Web服務計算機上的SSL證書也是安全的。另一種方法是在Web服務器和Web服務的服務器之間建立一個安全的VPN。

2

有各種不同的標準,如WS信任,WS-Security的,WS聯盟等,這些你可以依靠,以確保您的web服務。

您還可以簽署包含安全信息的肥皂標題。

以下博客詳細介紹了使用php的webservices的各種認證機制。 http://phpwebservices.blogspot.com/

0

SSL使用用戶憑據是關於安全的,因爲你可以得到的。你必須定義你的安全問題。用戶的數據包會被嗅探?這就是SSL的用途。未經授權的用戶將獲得訪問權限?這將取決於密碼安全性。

一兩件事你可以做的是建立一個租賃系統,你伸手,有在後傳遞和交易後或很短的時間期滿後唯一的加密ID。此租約代碼可以檢索到頁面中的隱藏div(以避免上面的沙箱問題),然後插入到每個後續的Ajax請求中。