呼叫者我繼承了一個系統,該系統由一個WebMethod中的數據集的形式獲取數據。數據可能很敏感。讓我感到震驚的是,有些方法無法知道,或者檢查調用者是誰,還有一些方法需要整數來標識調用者。該整數從0開始並且是連續的並且與不同的公司/數據集相關聯。顯然不夠好。 (這是容易的,我通過猜測數字如何驗證與Web服務通信
我的問題是看我不應該有訪問數據,是否有認證呼叫者,完善這一系統
呼叫者我繼承了一個系統,該系統由一個WebMethod中的數據集的形式獲取數據。數據可能很敏感。讓我感到震驚的是,有些方法無法知道,或者檢查調用者是誰,還有一些方法需要整數來標識調用者。該整數從0開始並且是連續的並且與不同的公司/數據集相關聯。顯然不夠好。 (這是容易的,我通過猜測數字如何驗證與Web服務通信
我的問題是看我不應該有訪問數據,是否有認證呼叫者,完善這一系統
什麼類型的服務是什麼?這些天,我會寫的WCF,並使用任何常規身份模型進行身份驗證(我通常使用TransportWithMessageCredential - 即正文中帶有用戶名/密碼的SSL)。然後你可以通過Principal
(Thread.CurrentPrincipal.Identity.Name
)查看身份。
對於SOAP服務,可以使用SOAP頭進行身份驗證,也可以包括身份信息的方法參數 - 無論是用戶名/密碼對或獨立的身份憑證,可解析得到認同。無論如何,您只應通過SSL等安全傳輸方式「按原樣」傳遞身份信息。還有其他技術不需要傳遞密碼,但它們更復雜(特別是涉及多個域等時)。 Kerberos或聯合安全性是選項。就個人而言,我把它簡單,因爲不是所有的客戶端可以使用聯合等 - 但大多數客戶端可以通過通過SSL進行用戶名/口令對。
的最佳實踐方法如果你有控制Web服務代碼,你可以修改它爲需要身份驗證或可能創建一個代理吧。
請仔細閱讀本article。
如果你使用WCF,您還可以在加密敏感數據的許多選項。 – 2009-05-31 21:29:13