如何停止谷歌随机生成xmpp资源。

5
在XMPP(即gtalk)中,我们可以将资源设置为我们想要的内容(指定机器/位置等),这在大多数服务器和客户端上都能很好地工作。但在谷歌的情况下,它并不完全按预期工作,因为每次用户连接时,谷歌会将随机字符串附加到用户设置的资源中。这特别令人烦恼,因为许多客户端通过jid和资源部分区分用户聊天,导致在重新连接后打开多个窗口/选项卡(并生成新资源)。简而言之,有没有办法防止谷歌附加随机字符串到用户设置的资源中?
2个回答

1
简短回答,没有方法。出于安全原因,资源应该是不可预测的。GTalk服务器通过向您的资源添加随机字符串来强制执行此操作。

4
请问为什么需要让它变得不可预测?我一直喜欢将消息发送到特定的资源(例如,如果情况紧急就发送到alice@example.org/mobile,否则发送到alice@example.org/home)。 - unor
当我能猜到你的资源并知道你的jid时,我可以用IQ垃圾邮件轰炸你。 - Alex
这种“IQ”垃圾邮件只有在你猜测或知道资源的情况下才可能发生?因此,如果没有指定任何资源,仅使用alice@example.org是不可能的吗? - unor
是的,IQ 请求始终发送到完整的 JID(除了像 vCard 这样的一些例外情况)。 - Alex
我明白了。如果您使用客户端设置,比如“不允许来自未在您花名册上的联系人发送消息”,那么这种垃圾邮件是否会被阻止? - unor
1
如果你不显示它,但仍然通过网络传输到客户端,这是不好的。只需使用不可预测的资源,一切都会好的。我们今天有其他的XMPP协议扩展,比如caps或disco,可以暴露我们很久以前放在资源中的东西,直到我们找到更好的方法为止。还请参阅上面Joe的回复。 - Alex

1
除了 @Alex 的正确答案外,不要语义化使用资源。 对于聊天,客户端真的不应再将每个资源视为单独的对话。 我们在十年前就已经学到了这个教训。 为了识别客户端,请使用 XEP-0115 而不是硬编码的资源。

5
你所指的 "We learned that lesson over a decade ago" 意思是“我们在十多年前就已经吸取了那个教训”,对吗? - unor
1
好的,但我们在这种情况下如何安排资源优先级呢?更不用说我们想要将消息发送到哪个“端点”了吧? - Wojtek
@Joe Hildebrand,您介意回答一下要求澄清的评论吗? - Piotr Dobrogost

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接