【发布时间】:2020-07-18 20:35:06
【问题描述】:
我有一个服务器来处理从客户端到 sql 数据库的请求。服务器接受请求并以 json 格式给出响应。我已经为服务器和客户端编写了代码,一切正常。虽然这仅适用于内部工具,但我担心有些人可能会尝试绕过客户端并将自己的 json 消息发送到服务器,以潜在地操纵 sql 数据库上的数据。
我不是安全专家,所以这是我的问题。确保服务器只接受来自我编写的客户端的请求的正确方法是什么,而不管它运行的机器或 IP 是什么?
我最初的想法是我应该加密服务器和客户端之间的消息,因此如果有人试图欺骗与未经授权的客户端的连接,他们将无法进行适当的加密。我也意识到我应该在服务器端进行身份验证,但这意味着传递凭据,因此无论如何都应该对消息进行加密。如果有更可接受的方式来做到这一点,我很想知道。如果没有,将不胜感激教程的链接。
正如标签所述,这是在 c++ 中的 linux 上。虽然我确信那里可能有一些开源库可以完全满足我的所有需求,但我对于我可以实际使用的库非常有限。
谢谢!
【问题讨论】:
-
如果您担心安全问题并且无法使用安全库,最好的办法是获得安全领域的硕士学位或找到具有同等学历的人。除此之外,Boost.Asio 内置了 SSL。
-
你的服务器是公开的?还是仅在您的本地网络中使用?
-
@Landstalker 服务器仅用于本地网络
-
您应该限制人们可以做什么,而不是他们如何做。前者可以提供真正的安全性,后者真的不能。只要服务器/客户端协议不允许用户做任何他们不应该做的事情,你为什么要关心他们使用什么客户端呢?在服务器中实现安全性。
标签: c++ linux sockets encryption