Nous avons récemment travaillé sur une plateforme dédiée aux entreprises canadiennes. Nous avons particulièrement remarqué que plusieurs utilisateurs se faisaient passer pour des entreprises canadiennes pour créer un compte. Pour remédier au problème, nous avons opté pour la restriction de la création de compte uniquement aux utilisateurs du Canada. Dans cet article, nous regardons comment à l’aide de PHP, vous pouvez limiter votre site web aux utilisateurs d’un pays. Nous verrons également dans quelle mesure notre approche peut vous aider.
<?php
function trouver_IP() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
return $_SERVER['HTTP_CLIENT_IP'];
}
else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else {
return $_SERVER['REMOTE_ADDR'];
}
}
function convertir_ip_en_pays() {
$vis_ip = trouver_IP();
$ch = curl_init('http://ipwhois.app/json/' . $vis_ip);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
curl_close($ch);
$ipWhoIsResponse = json_decode($json, true);
$country = $ipWhoIsResponse['country'];
return $country;
}
?>
Nous avons tout simplement développé une fonction PHP qui se sert de la plateforme ipwhois.app pour récupérer les informations relatives à une adresse IP. Ensuite, nous avons utilisé CURL et la fonction Json_decode pour convertir l’information en tableau. Vous pouvez suivre les mises à jour de cette fonction via notre compte GIT.
Vous pouvez utiliser cette fonction sur votre site web en détectant en temps réel l’IP de vos utilisateurs et obtenir leur pays. Par la suite, vous pourriez mieux contrôler qui a accès à certaines fonctionnalités de votre site web.
Il existe plusieurs limitations à cette approche :
En dehors des trois limitations ci-dessus, il existe évidemment plusieurs autres limitations sur lesquelles nous ne nous sommes pas attardées. Nous allons vous présenter quelques approches pour compenser les limitations.
Lorsqu’un utilisateur utilise un VPN, son adresse IP est celui du VPN ; par conséquent, il est compliqué de détecter son IP. Vous pouvez cependant utiliser d’autre mesure barrière pour vous rassurer d’avoir une bonne protection sur votre plateforme. Un exemple peut être l’utilisation d’une authentification à deux niveaux. Les entreprises combinent de plus en plus l’utilisateur d’un mot de passe avec la vérification via un numéro de téléphone. Dans ce cas, elles envoient un SMS aux utilisateurs via leur numéro de téléphone pour valider qu’ils sont réellement dans une zone géographique donnée.
Cette approche peut être une approche supplémentaire pour limiter les abus ou les pertes en temps.
La plateforme ipwhois.app est un exemple parmi tant d’autres. Elle offre une option payante si la version gratuite est assez limitée pour votre besoin. Ainsi, pour être rassuré de ne pas avoir à atteindre votre limite, vous pouvez souscrire à la version payante.
Si les options présentées par ce site ne vous semblent pas satisfaisantes, vous pouvez plusieurs autres options en ligne offrant plus ou moins le même service.
Au cas où vous utiliseriez la version gratuite, une approche pour éviter d’épuiser le nombre de requêtes tout en limitant votre site web aux utilisateurs d’un pays serait de mieux planifier l’utilisation. Vous pouvez, l’utiliser notamment uniquement sur la page de connexion. Alternativement, après création de compte, vous pouvez l’utiliser pour automatiquement détecter le lien de création de compte et supprimer le compte.
Ne perdez jamais de vue qu’avoir le pays de vos utilisateurs n’est pas synonyme de sécurité. Cependant, c’est un pas de plus pour protéger votre solution. En plus de la détection du pays ou de la zone géographique, vous pouvez envisager d’autres mesures de protection.
Un ensemble de stratégies peuvent être développés en amont du concept de la détection du pays des utilisateurs. Il est vrai que cela peut présenter des limitations ; mais peut également aider dans certaines circonstances.
Merci d’avoir pris le temps de lire notre article. Si vous avez des commentaires, ce serait un plaisir de vous lire en bas de cet article. Vous pouvez également nous contacter en utilisant le formulaire de contact.