2011-10-07 88 views
1

我正在開發客戶端 - 服務器應用程序,客戶端是一個與我的c#服務器通信的iPhone設備。客戶端和服務器使用我設計的通過TCP套接字交換消息的文本協議。有人可以請給我一些指導方針如何添加到這個應用程序的基本安全? 在這一刻,我唯一的安全元素是客戶端身份驗證與登錄用戶名和密碼。但是,例如,任何人都可以看到並閱讀在客戶端和服務器之間發送的消息,沒有任何問題...客戶端服務器應用程序的安全

回答

2

在移動環境中,應用程序的用戶對設備的控制比對開發人員的控制要好。有沒辦法來隱藏密碼或密鑰。您必須考慮到惡意客戶端,因此請注意您公開的功能。

以純文本格式發送用戶名和密碼違反了OWASP a9。您應該考慮使用SSL/TLS或HTTPS。

+0

感謝您的回覆,我需要做什麼來添加SSL保護?我看到c#有一個sslstream就足以使用它而不是常規流?我如何獲得私鑰和公鑰?它花錢嗎? – Eyal

+0

@Eyal證書只是一個數字,數字是免費的。您可以使用每個* nix系統附帶的openssl命令生成它。 (我相信你可以在windows下做這個,但它可能更難)。爲此,您可以使用自簽名證書並使用服務器的公鑰分發客戶端。這一點是,你不希望一個舒緩的嗅探客戶的用戶名/密碼/其他信息。 – rook

+0

即時通訊問,因爲我看到一些文章說,它需要花錢獲得SSL證書..是否有任何教程你知道在目標c和c#中使用SSL? – Eyal

1

你看過openssl? SSL是提供安全通信的加密協議。 SSL將阻止其他人監聽客戶端和服務器之間的流。

你應該做的另一件事是驗證所有服務器輸入,以防止在服務器上執行惡意代碼。例如,如果你有一個存儲用戶輸入的數據庫,你應該看看SQL injection

+0

感謝您的回覆,你是什麼意思驗證所有服務器輸入? – Eyal

相關問題