因此,我正在嘗試編寫一個PHP SOAP客戶端,該客戶端需要用戶爲遠程SOAP服務器傳遞其登錄憑證。這是設置/困境:通過PHP保持登錄憑據服務器端(安全和安全)
- 用戶使用本地憑證登錄到本地站點,並轉到使用SOAP客戶端的頁面。
- 用戶現在被提示輸入遠程Soap服務器的憑證,順便說一下,它與用於通過POST表單訪問本地站點(10次中的9次)的憑證相同。
- 客戶端傳遞SOAP頭中的憑證以及SOAP請求,客戶端輸出SOAP服務器響應。
- 腳本結束,用戶看到輸出數據。
現在用戶想要一些與原始輸出相關的其他數據位。問題是,$ _POST變量現在已經消失了。用戶必須包含憑證以及下一個請求。重複,直到用戶決定通過另一種方法查找數據變得更容易,並放棄使用酷的SOAP客戶端。
託管Web服務的服務器可以通過Web客戶端直接訪問,並通過cookie維護身份驗證。但是,當通過WDSL查詢服務器時,它不會查找任何Cookie或其他瀏覽器端會話;它只是檢查SOAP請求是否包含頭中的憑證。
所以有這個問題的兩個版本:
1)是否有本地會話憑據獲得通過的SOAP請求,從而保持登錄到一個辦法? (請注意,即使在本地,我也無法控制身份驗證方法,這是通過本地化的Apache mod進行處理的,該mod可以控制整個系統中任何用戶的身份驗證,涵蓋了幾十個我沒有管轄權的部門。我查看了全局變量,並沒有看到任何證書提示,但我可能會對PHP/Apache的一些基本安全特性有所da漏)。
2)有沒有一種安全可靠的方式讓PHP在二級登錄後處理憑據,以便這些憑證可以使用一段時間(比如30分鐘的會話?)。請記住,根據第一點,這些憑據是非常機密的,因此,應該沒有簡單的方法讓某人捅過來並獲得這些憑據以回顯(或進入某些數據庫以查看它們等)。
對不起,如果這聽起來偏執。我不習慣處理安全憑證,除了一個簡單的「這是你放入密碼的地方......好,現在每個人都可以在會話的其餘時間彼此瞭解,我可以回到輸出有用的東西。」
即使鏈接到任何基本的安全功能將是一個有益的開始。
實際上,我在PHP會話安全在讀了起來: http://phpsec.org/projects/guide/4.html 我最關心的是,密碼是相當多的其他相同敏感數據,我需要確保沒有人可以解碼cookie或攔截會話。即使我很有可能使用某種密碼並反轉密碼並阻止訪問解密方法的任何http方式,但仍然會有代碼,如果有人能夠訪問服務器,則會繪製路線圖獲取密碼。 – Anthony 2009-06-08 23:19:11