2012-07-03 15 views
0

我遇到以下問題。我有一個服務器應用程序接受通過SSL封裝的套接字連接。客戶端通過它發送用戶和密碼,一旦在服務器上我檢查用戶/密碼是否正確。從客戶端提升socket.error到服務器

如果用戶名/密碼錯誤我希望服務器發送到客戶端Socket.error。現在想到的唯一想法是發送回客戶端「錯誤的密碼」,但我認爲使用內置錯誤更安全,這樣我可以通過嘗試除了語句之外的代碼來扭曲代碼。

無論如何,發送套接字錯誤從服務器到客戶端?

回答

0

最簡單的方法是發回某種返回碼,當客戶端看到服務器返回的代碼時,它會拋出異常本身。

+0

事實上,如果你沒有某種確認,你怎麼告訴客戶他們首先被認證? – Trickfire

+0

它比這更復雜一點。現在我有了SSL連接來確保連接是安全的,即使用證書,我知道用戶將是可信用戶,但我需要檢查用戶是他/她說的是誰,這就是爲什麼我需要第二次檢查,這是因爲我爲ZeroMQ創建了一個新的渠道。證書是公開的,每個擁有該應用程序的人都會擁有它,因爲我們無法爲每個用戶創建一個(我們將有多達1600個用戶使用該應用程序) – Daerum

+0

這聽起來像一個普通的身份驗證設置,除非我誤解。您不能將套接字錯誤發送給客戶端,因爲它是特定於語言的,除非您的意思是強制關閉套接字,如果客戶端試圖讀取該套接字,則會產生錯誤。但要做得更優雅,你應該向客戶發送一些確認信息,說明他們是否被認證,如果服務器回來並說他們沒有通過認證,你可以拋出任何你想要的錯誤(包括套接字)。錯誤)清理。 – Trickfire

相關問題