我正在开发一个客户端 - 服务器应用程序,客户端是一个与我的c#服务器通信的iPhone设备。客户端和服务器使用我设计的文本协议来通过TCP套接字交换消息。有人可以给我一些指导如何为这个应用程序添加基本安全性? 此时我唯一的安全元素是客户端身份验证,其中包含登录用户名和密码。但是,例如任何人都可以看到和阅读客户端和服务器之间发送的消息而没有任何问题...
答案 0 :(得分:2)
在移动环境中,应用程序的用户可以比开发人员更多地控制设备。 无法隐藏密码或密钥。您必须考虑恶意客户端,因此请注意您公开的功能。
以纯文本格式发送用户名和密码违反了OWASP a9。您应该考虑使用SSL / TLS或HTTPS。
答案 1 :(得分:1)
你看过openssl了吗? SSL是提供安全通信的加密协议。 SSL将阻止其他人监听客户端和服务器之间的流。
您应该做的更多事情是验证所有服务器输入,以防止在您的服务器上执行恶意代码。例如,如果您有一个用于存储用户输入的数据库,则应该查看SQL injection。