請教一個DataSnap的問題,那位高手幫忙指點一下:
datasnap如何獲取客戶端的請求報文,是這樣,我希望將Datasnap做得更安全一些,希望在TDSTCPServerTransport或TDSAuthenticationManager的階段就將非法連接過濾掉,最多到TDSServer的onConnect將非法連接過濾掉。但發現能獲取的客戶端資訊都不一樣。
TDSTCPServerTransport(Event: TDSTCPConnectEventObject),TDSAuthenticationManager只有(const Protocol, Context, User, Password: string)幾個資訊,且Context是空的。TDSServer.onConnecte(DSConnectEventObject: TDSConnectEventObject),三個地方獲得的資訊都不一樣。我想應該是DataSnap在第一時間就把非法連接攔掉,按DataSnap的連接順序,對于tcp/ip協議,先過TDSTCPServerTransport->TDSAuthenticationManager->TDSServer,而Http協議則直接到TDSAuthenticationManager->TDSServer,那么在TDSAuthenticationManager至少應拿到客戶端的IP地址吧,最好是全部報文。
那位有辦法,或者有其他保證安全的方式,請指教。
uj5u.com熱心網友回復:
DataSnap 服務器與客戶端,是建立在GUID編碼一致,才能建立連接。因此,基本不存在,非法客戶端的接入。所以,確保安全的連接:
1、非正確的GUID碼,是不能建立連接的;(第一層安全)
2、確認 登錄人的合法性。實作這一占,首先要能登錄進入服務器,錄入上傳用戶名、SN,比較資料庫后,才能進入系統。(第二層安全)
3、在資料庫一個表,錄入一系列“用戶名”和“SN”,登錄時,通過比對,確定該用戶是否可以進入,以及它的權限。(第三層安全)
4、為了加強安全性,可以通過IP地址或網卡地址和用戶名SN的雙重檢修,前提是登錄后上傳,IP地址、網卡地址和用戶名、SN。
你說的通過onConnect將非法連接過濾掉,未見過。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/55145.html
標籤:網絡通信/分布式開發
下一篇:24字串相乘
