【问题标题】:Use Android XMPP Smack without making public the Service Name and the Host name在不公开服务名称和主机名的情况下使用 Android XMPP Smack
【发布时间】:2020-01-01 14:51:56
【问题描述】:

正如您在下面的示例代码中看到的,Smack 要求我提供服务名称和主机。我将 Ejabberd 与 Linux 和一个 EC2 实例一起使用。

在检查 XMPP 客户端应用程序时,我看到了使用其他 XMPP 提供商创建帐户的选项。我担心当我向公众发布我的应用程序时,我的 EC2 实例的 DNS 将使人们能够创建大量帐户,而不是直接从我的应用程序而是从任何地方创建。

我应该使用 Firebase Functions 之类的东西吗?或者类似的东西?解决这个问题的最佳方法是什么?我只是不希望主机名公开。

XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration
            .builder();
    config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
    config.setServiceName(serverAddress);
    config.setHost(serverAddress);
    config.setPort(5222);
    config.setResource(context.getResources().getString(R.string.resource_name));
    config.setDebuggerEnabled(true);
    config.setSendPresence(true);
    XMPPTCPConnection.setUseStreamManagementResumptiodDefault(true);
    XMPPTCPConnection.setUseStreamManagementDefault(true);
    mConnection = new XMPPTCPConnection(config.build());
    XMPPConnectionListener connectionListener = new XMPPConnectionListener(type);
    mConnection.addConnectionListener(connectionListener);

【问题讨论】:

  • 您无法阻止主机名的发现——您的应用程序会访问它,因此发现它非常简单。主机名不是也不能是秘密的,这就引出了下一个问题:为什么,具体来说,这是一个问题?您似乎担心人们会在您的服务器上“创建大量帐户”,那么为什么会这样呢?您的服务器是否只是坐在那里,暴露在外,(错误?)配置为允许发现它的任何人创建新帐户,或者......?威胁模型不清楚,这也是您提到 firebase 功能的原因......如何使用这些帮助?
  • 您好,兄弟,感谢您的回答。我已经检查过 Conversations,一个 xmpp 客户端,它允许您向他们自己的 xmpp 提供者或其他 xmpp 提供者注册帐户。我在想,也许有人拿了我的主机名,进入那个应用程序并创建了一个帐户:/ 。你认为有可能让一个 ec2 实例只响应特定的 1 个应用程序而没有其他人。如果这是可能的,那么一切都解决了。我正在考虑将 firebase 函数作为一种解决方案,例如,在没有任何人看到我的主机名的情况下拥有我的主机名并执行所有逻辑。

标签: android amazon-ec2 xmpp ejabberd


【解决方案1】:

仅当您在 ejabberd 配置中启用了该选项时,此帐户创建才有效。如果您使用 ProcessOne 和大多数 Linux 发行版提供的标准配置,则应该禁用它。 它应该是这样的:

modules:
  # other modules stuff

  mod_register:
    ip_access: trusted_network

您的 acl 应该与此类似:

acl:
  # other irrelevant acls

  loopback:
    ip:
      - "127.0.0.0/8"
      - "::1/128"

所需的访问规则应该是这样的:

access_rules:
  trusted_network:
    - allow: loopback

这都是根据配置的文档,可以在这里找到:https://docs.ejabberd.im/admin/configuration/

【讨论】:

    猜你喜欢
    • 2014-09-17
    • 2012-02-08
    • 2016-06-01
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 2011-07-08
    • 2022-08-03
    • 1970-01-01
    相关资源
    最近更新 更多