Web applications Web应用程序与客户端/服务器本机应用程序的安全性相比,哪一种更好?

Web applications Web应用程序与客户端/服务器本机应用程序的安全性相比,哪一种更好?,web-applications,client-server,security,Web Applications,Client Server,Security,我正在开发一个管理界面,在需要最佳安全保护的远程服务器上对敏感数据执行CRUD。我手头有两个选择,但我不知道哪一个更好 使用LAMP+SSL创建web应用程序,并使用IP筛选器、密码等方法控制访问 创建本机服务器/客户端应用程序,并使用TCP套接字与SSL加密通信,并使用密码控制访问 我充分意识到,在将其放到web上之后,没有什么是安全的,我已经考虑了将隧道传输到服务器并作为本地应用程序运行的选项 然而,从用户的角度来看,这将很难使用IMHO,因此除此之外,还有更好的用户友好型选项吗 不太熟悉安

我正在开发一个管理界面,在需要最佳安全保护的远程服务器上对敏感数据执行CRUD。我手头有两个选择,但我不知道哪一个更好

使用LAMP+SSL创建web应用程序,并使用IP筛选器、密码等方法控制访问

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

我充分意识到,在将其放到web上之后,没有什么是安全的,我已经考虑了将隧道传输到服务器并作为本地应用程序运行的选项

然而,从用户的角度来看,这将很难使用IMHO,因此除此之外,还有更好的用户友好型选项吗


不太熟悉安全方面的东西,所以任何建议都会很有帮助。谢谢。

至于tcp套接字和https,在安全性方面可能没有什么区别。由于套接字的“标准”程度较低,因此可能会有更多的保护,因为简单的现成浏览器+标准http可能无法工作。然而,它实际上比安全性更隐蔽

你必须考虑两件事: 隐私:确保其他人看不到传输中的数据。类似SSL的东西应该涵盖这一点。
身份验证:服务器相信客户机就是它所说的客户机。这是更难的问题。如果你需要某种类型的“密码”,它会有所帮助,但当然你必须管理密码等。这本身就是一个大话题

您列出的两种方法本质上都不比另一种更安全。如果您使用TCP套接字,那么危险在于有人注意到服务器正在侦听TCP连接,连接到它,并制定数据交换协议。如果您使用web应用程序方法,那么危险在于有人发现网站URL,使其通过您的筛选,并且能够建立或劫持经过身份验证的会话

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


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

如果您的用户使用12345作为密码,那么世界上最强大的加密就无关紧要了。如果您非常关心安全性,请不要使用密码。

如果您对安全性不太熟悉,我将避免使用您自己的解决方案。同意您的看法,但我们只需要满足小用户群的需要。因此,我们可以设置和分发强密码。当然可以,但您可以阻止他们更改它吗?还是写下来?或者在浏览器中单击“记住”?相反,使用证书也同样容易。或者更好,除了。很好的建议。会考虑的。谢谢