Connexion en PHP/MySQL avec adresse IP

Résolu
Ulrichleboss
Messages postés
502
Date d'inscription
dimanche 20 juillet 2008
Statut
Membre
Dernière intervention
14 mai 2016
- Modifié par Ulrichleboss le 18/07/2014 à 12:09
jordane45
Messages postés
35834
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 juillet 2022
- 20 juil. 2014 à 15:43
Bonjour,


J'ai fait réussi à me faire un petit système de connexion en PHP avec une BDD MySQL, mais j'aimerais ajouter une protection par IP, que l'utilisateur puisse se connecter uniquement avec l'adresse IP de sa première connexion.

J'ai deux fichiers dans mon serveur ftp api.php et identifiants.php

include 'identifiants.php';

$pseudo = stripslashes(htmlspecialchars($_GET['pseudo']));
$mdp = strtolower($_GET['pass']);

$query_pseudo=$db->prepare("SELECT mdp FROM membre WHERE pseudo=:pseudo");
$query_pseudo->bindValue(":pseudo", $pseudo, PDO::PARAM_STR);
$query_pseudo->execute();
$data_pseudo=$query_pseudo->fetch();

if ($query_pseudo->rowCount() != 0)
{
 if ($data_pseudo['mdp'] == $mdp)
 {
  echo "ok";
 } else {
  
  echo "Error1";
 }
} else {
 
 echo "Error2";
}



Comment puis-je faire ça ? Je suis en C#

Merci d'avance !

3 réponses

jordane45
Messages postés
35834
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 juillet 2022
358
18 juil. 2014 à 12:13
Bonjour,


Il faut que tu enregistres l'IP de l'utilisateur lors de sa première connexion et que lorsque tu interroges ta BDD pour vérifier ses identifiants... tu vérifies aussi son IP.

Attention... il arrive régulièrement que les IP changent....(surtout pour les personnes qui se connectent depuis des cyber cafés (surtout en Afrique) ou tout simplement pour les personnes qui utilisent différents lieux de connexion... ( travail/maison... depuis son smartphone....).
Avant de mettre ça en place... assure toi bien que cela ne causera pas de soucis pour l'utilisation de ton application par les utilisateurs.


0
Ulrichleboss
Messages postés
502
Date d'inscription
dimanche 20 juillet 2008
Statut
Membre
Dernière intervention
14 mai 2016

18 juil. 2014 à 12:17
Enfaite l'application servira uniquement à des utilisateurs qui auront acheter le logiciel, je voudrais en faire une sécurité en quelque sorte pour que les compte ne soit pas utiliser par deux personnes différentes, si la personne compte déménager je lui ferais un changement manuel
0
jordane45
Messages postés
35834
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 juillet 2022
358
18 juil. 2014 à 14:21
En général.. plutôt que d'utiliser les IP les programmes utilisent la MAC Address .
Comme ça... même si l'utilisateur se connecte sous une autre IP... le programme fonctionne toujours.

http://fr.wikipedia.org/wiki/Adresse_MAC

http://www.commentcamarche.net/forum/affich-2798938-comment-connaitre-l-adresse-mac-de-son-pc

.

En C# :
foreach (NetworkInterface carteRéseau in NetworkInterface.GetAllNetworkInterfaces())
{
  string adresseMac;

  adresseMac = BitConverter.ToString(carteRéseau.GetPhysicalAddress().GetAddressBytes());
}


0
Ulrichleboss
Messages postés
502
Date d'inscription
dimanche 20 juillet 2008
Statut
Membre
Dernière intervention
14 mai 2016

20 juil. 2014 à 14:20
Une question si l'utilisateur change de carte par exemple il se met en wifi au lieu d'être en ethernet, il ne pourra donc plus se connecter vu que l'adresse MAC sera différente ?
0
jordane45
Messages postés
35834
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 juillet 2022
358
20 juil. 2014 à 15:43
Il te faudrait alors utiliser plutot le Numéro de série du disque dur où est installé ton programme.

jette un oeil ici :
http://www.developpez.net/forums/d1358776/dotnet/langages/csharp/numero-serie-physique-disque-dur-csharp/
0
Ulrichleboss
Messages postés
502
Date d'inscription
dimanche 20 juillet 2008
Statut
Membre
Dernière intervention
14 mai 2016

18 juil. 2014 à 16:25
Ah oui en effet c'est pas bête j'avais pas penser à l'adresse MAC je vais étudier ça ;)
0