2011-10-07 93 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

相关问题