【问题标题】:Twisted python: UDP Multicast Interface and GroupTwisted python:UDP 多播接口和组
【发布时间】:2012-08-06 22:54:32
【问题描述】:

关于 twisted 的 UDP 多播的安全性,我有 2 个问题。

class UDPProtocol(twisted.internet.protocol.DatagramProtocol):
        def startProtocol(self):
                self.transport.joinGroup('224.0.0.1')
        def datagramReceived(self, data, (host, port)):
            if host == '192.126.1.65':
                print "UDPWebscriptProtocol: received %r from %s:%d" % (data, host, port)   

我就是这样听的:

reactor.listenMulticast(10222, UDPProtocol(), listenMultiple = True, interface = '224.0.0.1')

注意listenMulticast中的接口规范。

  1. 在 listenMulticast 中指定接口与在协议中加入组有什么区别?
  2. 在协议中,我检查主机接口是否具有正确的 IP(在本例中,是具有 rfc 1918 地址的私有接口)。有人可以欺骗这个 ip 并广播到我的组吗?还是只能欺骗 IP 而不能欺骗接口?

总的来说,这段代码的安全性如何?

【问题讨论】:

    标签: python security interface twisted multicast


    【解决方案1】:
    1. 监听界面就是你监听的那个界面。加入组告诉内核和所有路由器你想接收这个组,例如您的路由器将传递来自该组的消息,而不是默认情况下丢弃它们。

    2. 我不明白。你的意思是你检查传入数据报的源IP地址吗?我看不到您如何检查其他人的主机接口。如果允许的源地址是私有的,则唯一可能的欺骗来自该私有子网内部。

    【讨论】:

    • 1/监听接口是物理接口吗?我知道该组可以是任意地址。它们必须相同,不是吗?
    猜你喜欢
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多