Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
非敏感信息的TCP客户端请求/服务器响应的安全注意事项_C_Security_Sockets_Tcp - Fatal编程技术网

非敏感信息的TCP客户端请求/服务器响应的安全注意事项

非敏感信息的TCP客户端请求/服务器响应的安全注意事项,c,security,sockets,tcp,C,Security,Sockets,Tcp,我读过几个关于stackoverflow的类似主题,其中程序员同事不鼓励使用简单的客户机/服务器应用程序和原始TCP套接字进行通信。我承认有一些担忧,但对于我试图实现的目标,我看不到任何其他合理的方式 以下是我的计划: 我用C编写了一个简单的工作原型客户机/服务器。客户机应用程序向我的服务器发送一个远程执行代码的请求,生成一个值,然后将该值转发给客户机。传输的数据不敏感,仅保存在RAM中,如果超过预定义的长度,将被拒绝。如果我运行一个(加固的)专用服务器,其唯一目的是远程代码执行以生成响应,那么

我读过几个关于stackoverflow的类似主题,其中程序员同事不鼓励使用简单的客户机/服务器应用程序和原始TCP套接字进行通信。我承认有一些担忧,但对于我试图实现的目标,我看不到任何其他合理的方式

以下是我的计划:

我用C编写了一个简单的工作原型客户机/服务器。客户机应用程序向我的服务器发送一个远程执行代码的请求,生成一个值,然后将该值转发给客户机。传输的数据不敏感,仅保存在RAM中,如果超过预定义的长度,将被拒绝。如果我运行一个(加固的)专用服务器,其唯一目的是远程代码执行以生成响应,那么是否存在我忽略的任何安全问题

我不太担心我的服务器被破坏,而更担心可能对客户端计算机造成的伤害。我并不是对我的服务器被黑客攻击的可能性视而不见——我只是想传达这样一个信息:即使服务器被入侵,他们的服务器上也不会有任何敏感数据。考虑到传输的数据范围很窄,我看不出有什么恶意的东西可以被注入(mitm),但也许我太天真了,忽略了什么?请让我知道

我可以通过HTTP通过重写技巧来实现这一点,但这很复杂,我将承担比我想要的更多的开销,我不确定这是否会更安全


谢谢。

保密性-如果您觉得数据不敏感,则无需保密

身份验证-证书可用于确保客户端与真正的服务器对话。请检查openssl

确保服务器以较低的权限而不是根权限运行,以便在发生内存损坏攻击时服务器不会完全受损

使用HTTP不会有任何区别,HTTP在传输层使用TCP连接。
HTTPS将是一个可能的解决方案。

您需要考虑您的服务器是否可能被入侵者损坏或擦除,甚至断电。任何涉及远程执行代码的事情都会引起我的警觉。您必须至少使用一个安全的客户端身份验证方案。

谢谢,我之前确实研究过openssl,但不确定是否有必要。你证实了我对HTTP的怀疑,因为它只是上面的一层——我只是想我会把这个建议扔出去,因为我不完全确定。谢谢你的输入。远程代码将在我拥有的服务器上执行,客户端不会从我的服务器接收任何执行远程代码的指令,它们只会接收一个字符串。我知道我的建议有几个缺点,像你建议的服务器过载或断电。现在我只关心的是不会给任何用户造成安全问题。如果我使用openssl或其他一些客户机身份验证方案,这就足够了吗?具有相互身份验证的SSL加上服务器上的授权步骤就足够了。服务器需要检查是否允许已验证的客户端标识执行该操作。