web-dev-qa-db-fra.com

Détecter un MSISDN (numéro de mobile) avec le navigateur

Existe-t-il des en-têtes HTTP pouvant être utilisés pour détecter un numéro d’utilisateur mobile autre que cet en-tête X x-up-calling-line-id?

Je souhaite détecter autant que possible à partir de tous les navigateurs afin de couvrir tous les mobiles de la plate-forme.

10
kitokid

Je vous donnerai exactement la même réponse que celle que j'ai donnée à une question très similaire, car elle devrait donner un aperçu de ce que vous essayez d'atteindre.

La possibilité d'obtenir le numéro MSISDN de l'utilisateur visitant le site WAP dépend d'un certain nombre d'éléments.

Tout d'abord, l'utilisateur doit être sur Mobile Data. Si l'utilisateur est en WiFi, vous ne recevrez pas cette information.

Deuxièmement, le réseau mobile des utilisateurs doit prendre en charge le transfert de MSISDN dans les en-têtes HTTP.

Certains réseaux mobiles envoient des en-têtes pour toutes les demandes. D'autres envoient uniquement s'ils passent par un APN spécifique. Certains envoient uniquement cet en-tête à des adresses/blocs IP spécifiques. J'ai même rencontré des réseaux qui envoient le MSISDN en tant que variable $ _GET. Vous devrez vérifier auprès de chaque réseau que vous souhaitez prendre en charge.

Par exemple, un réseau particulier en Afrique du Sud envoyait des MSISDN dans des en-têtes jusqu'à il y a environ 6 mois et pour pouvoir recevoir le MSISDN dans les en-têtes, votre adresse de serveur doit maintenant figurer dans la liste blanche.

N'oubliez pas non plus que les en-têtes sont très faciles à falsifier et ne doivent pas être invoqués à moins que vous ne soyez sûrs d'être à l'origine de la requête HTTP, comme dans les cas où vous utilisez des vues Web dans des applications Android - mettez vous-même des mesures suffisantes.

Avec tout cela à l'esprit, voici ce que vous devriez rechercher:

Recherchez dans les en-têtes l'un des éléments suivants. Ce n'est pas une liste exhaustive des en-têtes MSISDN, ils ne sont que ceux que j'ai rencontrés au cours de mes aventures dans le développement mobile.

  • 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

Ce que je fais est de parcourir les en-têtes à la recherche de matchs. Si je ne trouve pas de correspondance, je répète dans les en-têtes en utilisant une regex MSISDN spécifique à un pays en regard des valeurs pour voir s'il existe des MSISDN potentiels dans les en-têtes des clés que je ne connais pas. Si je trouve une correspondance potentielle, j'ajoute la clé et les données à une liste que je pourrai consulter ultérieurement afin de l'ajouter à ma liste d'en-têtes MSISDN connus.

J'espère que cela a acheté un peu de clarté. Le plus important à retenir est que ce n'est pas une méthode fiable pour obtenir un MSISDN.

35
darryn.ten

Honnêtement, vous ne voudriez pas de cette fonctionnalité. Supposons que vous visitiez quelques sites Web et qu'ils capturent votre numéro de téléphone à partir de l'en-tête "x-up-call-line-id". Et ces sites Web vendent votre numéro de téléphone à des télévendeurs. Voulez-vous être dans cette situation?

La raison technique est différente. Le numéro de téléphone n'est jamais stocké sur le téléphone (généralement). La carte SIM est identifiée par son numéro IMSI et Registre de l'emplacement du domicile (au MSC) contient une entrée qui mappe IMSI au numéro de téléphone. Donc, pour répondre à votre question, ce n'est pas possible.

4
Kiran Kuppa

Utilisez Apache_request_headers () dans PHP pour obtenir MSISDN. Toutefois, le réseau mobile des utilisateurs doit prendre en charge le transfert de MSISDN dans les en-têtes HTTP.

1
Saqib Mahmood