网络服务安全:必须知道网络邮件大小?

时间:2010-07-17 14:26:55

标签: xml security networking

服务器/客户端应用程序使用TCP连接使用XML格式的数据相互通信。这很棒,因为我不必担心序列化/反序列化复杂数据。

为了允许XML数据接收,我将XML文档长度(以字节为单位)预先添加到通过网络套接字发送的数据中;通过这种方式,接收应用程序知道在对XML格式化数据进行反序列化之前读取了多少数据。

现在我试图想象使用这种消息传递结构的客户端/服务器应用程序上可能出现的安全漏洞。

除了与传输数据有关的问题,我认为XML格式的数据可以保护服务器免受恶意邮件的侵害。不是吗?如果答案是真的,剩下的唯一问题是,如果恶意客户端向我发送声明大量邮件大小的消息(通过更改在消息开头插入的整数),会发生什么。

结果将是DOS,因为天真的服务器处理非常大(合法)的消息...

可以避免“邮件大小”信息吗?如何防止DOS攻击?

1 个答案:

答案 0 :(得分:0)

网络层将阻止您阅读比可用数据更多的数据 - recv调用将阻止。所以是的,根据你的实现,这可能会导致DOS。

如果您还没有,请使用select。您可以将客户列表传递给select,该函数将返回准备接收的客户端。这样恶意客户端就无法阻止服务器。