能否有办法在发送方的UDP数据报进入接受方缓冲前,判断该消息的合法性?

时间:2023-02-13 21:12:46
能否在发送方的UDP数据报进入接受方缓冲前,判断该消息的合法性。
主要想解决的问题是:缓冲区被大量的非法数据占用,

12 个解决方案

#1


这应该是没办法,因为数据到UDP层之前,已经有过一层缓冲了

#2


是否可以通过自己提供SPI来解决?

#3


理论上应该可行。 不过, 怎么判断是否非法数据呢?
感觉上和防火墙功能上类似。

#4


所谓的非法数据:
1。不是来自指定的客户端的数据,如服务端维护一个IP数据库
2。通过截获合法数据包,进行IP伪装过的数据。

----------
防火墙是截获非内部客户请求的数据包。通过判断端口。

#5


自己UP

#6


好像挺难的。

#7


可以,在TDI或NDIS上就可以了,在这个层上就可以对利用IP地址进行过滤了
不过这两个层都是在内核里面,你要会写驱动,你可以到网上去找一下
有源代码的不过比较难看懂,要改成你需要的样子也比较困难如果你对驱动开发
不熟悉的话

#8


谢谢 wisemanboy 了
我下了WinPcap,应该是这方面的,还没仔细看。
--------------------------------------------------------------------------------
The purpose of WinPcap is to give this kind of access to Win32 applications; it provides facilities to:

1.capture raw packets, both the ones destined to the machine where it's running and the ones exchanged by other hosts (on shared media) 
2.filter the packets according to user-specified rules before dispatching them to the application 
3.transmit raw packets to the network 
4.gather statistical values on the network traffic

#9


2。通过截获合法数据包,进行IP伪装过的数据
难在此:如何区分是否IP伪装。或者考虑被截获后不能解码的情况(参考一些网上交易的资料)

#10


其实退一步,将消息通讯交给中间件处理,这样就使我们的程序免受直接的攻击。
其实中间件起到了一个放火墙的作用

对于利用IP地址欺骗,模拟来自对方节点IP和端口的数据包的解决办法就可以这样:
    在消息体中加一个认证码,存在一个算法,双方都知道上次传的认证吗,通过该算法就可以得到这里次该使用的认证码。这样即使数据包被识破,它没有这个算法就不知道下次的认证码,非法的模拟数据包将被抛弃。
----------------------------------------------------------------------------------
我们现在正做这方面的设计。理论上应该是行的通的。

#11


有做过这方面研究的,指点指点

#12


UPUP

#1


这应该是没办法,因为数据到UDP层之前,已经有过一层缓冲了

#2


是否可以通过自己提供SPI来解决?

#3


理论上应该可行。 不过, 怎么判断是否非法数据呢?
感觉上和防火墙功能上类似。

#4


所谓的非法数据:
1。不是来自指定的客户端的数据,如服务端维护一个IP数据库
2。通过截获合法数据包,进行IP伪装过的数据。

----------
防火墙是截获非内部客户请求的数据包。通过判断端口。

#5


自己UP

#6


好像挺难的。

#7


可以,在TDI或NDIS上就可以了,在这个层上就可以对利用IP地址进行过滤了
不过这两个层都是在内核里面,你要会写驱动,你可以到网上去找一下
有源代码的不过比较难看懂,要改成你需要的样子也比较困难如果你对驱动开发
不熟悉的话

#8


谢谢 wisemanboy 了
我下了WinPcap,应该是这方面的,还没仔细看。
--------------------------------------------------------------------------------
The purpose of WinPcap is to give this kind of access to Win32 applications; it provides facilities to:

1.capture raw packets, both the ones destined to the machine where it's running and the ones exchanged by other hosts (on shared media) 
2.filter the packets according to user-specified rules before dispatching them to the application 
3.transmit raw packets to the network 
4.gather statistical values on the network traffic

#9


2。通过截获合法数据包,进行IP伪装过的数据
难在此:如何区分是否IP伪装。或者考虑被截获后不能解码的情况(参考一些网上交易的资料)

#10


其实退一步,将消息通讯交给中间件处理,这样就使我们的程序免受直接的攻击。
其实中间件起到了一个放火墙的作用

对于利用IP地址欺骗,模拟来自对方节点IP和端口的数据包的解决办法就可以这样:
    在消息体中加一个认证码,存在一个算法,双方都知道上次传的认证吗,通过该算法就可以得到这里次该使用的认证码。这样即使数据包被识破,它没有这个算法就不知道下次的认证码,非法的模拟数据包将被抛弃。
----------------------------------------------------------------------------------
我们现在正做这方面的设计。理论上应该是行的通的。

#11


有做过这方面研究的,指点指点

#12


UPUP