【问题标题】:Detect an MSISDN (mobile number) with the browser使用浏览器检测 MSISDN(手机号码)
【发布时间】:2012-01-15 17:42:40
【问题描述】:

除了这个 X-header x-up-calling-line-id 之外,是否有任何 HTTP 标头可以用来检测移动用户号码?

我想从所有浏览器中检测到尽可能覆盖所有平台的手机。

【问题讨论】:

  • 我几乎可以肯定,如果这个 DID 存在,它会被用于恶意目的的速度比你说的“违反个人诚信”要快。
  • 它可以请求用户许可。

标签: mobile phone-number msisdn


【解决方案1】:

我会给你一个与我对一个非常相似的问题给出的完全相同的答案,因为它应该可以让你深入了解你想要实现的目标。

获取访问 WAP 站点的用户的 MSISDN 的能力取决于很多因素。

首先,用户必须使用移动数据。如果用户在 WiFi 上,那么您将不会收到此信息。

其次,用户的移动网络必须支持在 HTTP 标头中传递 MSISDN。

某些移动网络会针对所有请求发送标头。其他人仅在通过特定 APN 时发送。有些只将此标头发送到特定的 IP 地址/块。我什至遇到过将 MSISDN 作为 $_GET 变量发送的网络。您需要检查您打算支持的每个网络。

例如,直到大约 6 个月前,南非的一个特定网络过去一直在标头中发送 MSISDN,现在为了在标头中接收 MSISDN,您的服务器地址需要被列入白名单。

还请记住,标头很容易被欺骗,除非您保证自己是 HTTP 请求的发起者,否则不应依赖标头,例如在 Android 应用程序中使用 Web 视图的情况下 - 您需要自己采取足够的措施。

考虑到所有这些,您应该寻找以下内容:

查看您的标题是否有以下任何内容。这根本不是 MSISDN 标头的完整列表,它们只是我在移动开发冒险中遇到的那些。

  • X-MSISDN
  • X_MSISDN
  • HTTP_X_MSISDN
  • X-UP-CALLING-LINE-ID
  • X_UP_CALLING_LINE_ID
  • HTTP_X_UP_CALLING_LINE_ID
  • X_WAP_NETWORK_CLIENT_MSISDN

我所做的是遍历标题以查找任何匹配项。如果我没有找到任何匹配项,我会再次使用特定于国家/地区的 MSISDN 正则表达式针对这些值运行标头,以查看我不知道的键的标头中是否有任何潜在的 MSISDN。如果我找到一个潜在的匹配项,我会将密钥和数据添加到一个列表中,以便稍后添加到我的已知 MSISDN 标头列表中。

我希望这能带来一些清晰。最重要的是要记住,这不是获取 MSISDN 的可靠方法。

【讨论】:

  • 这和启动APP一样吗——APP可以访问MSISDN吗?
  • APP可以简单地从安装它的手机请求号码。
  • @CaptainKenpachi 和手机可以伪造
【解决方案2】:

老实说,你不会想要这个功能。假设您访问了几个网站,它们从标题“x-up-calling-line-id”中获取了您的电话号码。这些网站将您的电话号码出售给电话推销员。你想处于那种境地吗?

技术原因不同。 Phone number 永远不会存储在手机上(通常)。 SIM 卡由 IMSI 号码标识,Home Location Registry(在 MSC)包含一个将 IMSI 映射到电话号码的条目。所以要回答你的问题,这是不可能的。

【讨论】:

  • 是的。我认为最好问问电信公司是我们的客户。
  • 这能回答你的问题吗?如果是的话,你能选择它作为一个吗?
【解决方案3】:

在 PHP 中使用 apache_request_headers() 来获取 MSISDN。但是,用户的移动网络必须支持在 HTTP 标头中传递 MSISDN。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-16
    • 2012-07-20
    • 2016-01-01
    • 1970-01-01
    • 2011-06-27
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多