Web应用程序与客户端/服务器本机应用程序安全性明智,哪个更好?

时间:2011-06-29 02:14:19

标签: web-applications client-server security

我正在开发一个管理界面,通过互联网对远程服务器上的敏感数据进行CRUD,这需要最好的安全保护。我有2个选择,但我无法弄清楚哪个是更好的方法。

  1. 使用LAMP + SSL创建Web应用程序,并使用IP过滤器,密码等方法控制访问。

  2. 创建本机服务器/客户端应用程序,并使用TCP套接字与类似SSL的加密进行通信,并使用密码控制访问。

  3. 我完全清楚在上网后没有什么安全的,我已经考虑过隧道进入服务器并作为本地应用程序运行的选项。

    然而,从用户的角度来看,这将是非常难以使用的恕我直言,所以除了用户友好的任何更好的选项?

    对安全性不太熟悉,所以任何建议都会有所帮助。感谢。

3 个答案:

答案 0 :(得分:0)

就tcp socket与https而言,安全性可能差别不大。由于套接字不那么“标准”,因此可能会有更多的保护,因为简单的现成浏览器+标准http [s]可能无法正常工作。然而,它确实比安全更隐蔽。

你必须考虑两件事: 隐私:确保其他人无法在运输中查看数据。像SSL这样的东西应该涵盖这个。 身份验证:服务器信任客户端是它所说的人。这是更难的问题。如果您需要某种“密码”,它会有所帮助,但当然您必须管理密码等。这本身就是一个很大的话题。

答案 1 :(得分:0)

您列出的任何一种方法本身都不比另一种方法更安全。如果你使用TCP套接字,那么危险就是有人注意到服务器正在侦听TCP连接,连接到它,并计算出你的数据交换协议。如果您使用网络应用程序方法,则危险在于有人发现网站URL,使其超过您的过滤,并且能够建立(或劫持)经过身份验证的会话。

任何一方都要求攻击者执行相同的基本步骤(发现服务存在,连接/访问服务,说服服务他们有权执行受保护的操作)。任何一方都要求您要么知道自己在做什么,要么彻底完成作业,以便创建一个真正安全的系统。

所以从这个意义上讲,我建议你选择一种你更熟悉的方法。当然,值得考虑的是,如果您使用Web应用程序路径,可能会有更多的预构建安全库和工具可供选择。例如,可能有许多Java Filter实现可以让您指定基于IP的黑名单和白名单参数,许多服务器将包含用于处理用户身份验证的预构建框架,等等。

答案 2 :(得分:0)

如果您的用户使用“12345”作为密码,则世界上最强大的加密无关紧要。如果您担心安全问题,请不要使用密码。