Aller au contenu

Execution d'un script a distance et récupération des données


Sujets conseillés

Posté

Bonjour,

J'ai un petit soucis.

J'ai un serveur chez ovh avec la base de données (serveur A) et un autre serveur sans base de données (serveur B).

Ce que je souhaiterais faire, c'est une identification sur le serveur B. C'est-à-dire que lorsque l'utilisateur arrive sur B, il remplit ses identifiants banalement et ensuite le script envoie les identifiants au A (sans que l'utilisateur ne le remarque évidemment) qui check dans la base de données et ce dernier renvoie les informations de l'utilisateur au B.

Je vous ai fais un petit dessin ;)

sanstitreuzj.png

J'ai fais pas mal de recherche sur le système de SSO car je me disais que c'était à peu près le comportement mais en fait non. J'ai également regardé du côté de cURL ...

Avez-vous une idée svp.

Merci

Posté (modifié)

Oj, je comprends le principe. La fonction files_get_content execute en un premier temps cette page sur le serveur distant et reprend tout ce qui s'affiche ?

Par contre, la dernière phrase, je n'ai rien compris, mais alors pas du tout

sur A, tu autorise un utilisateur en % histoire qu'il sache se connecter via le script php vers ton serveur B

Merci

Modifié par yaK2manD
Posté

Oj, je comprends le principe. La fonction files_get_content execute en un premier temps cette page sur le serveur distant et reprend tout ce qui s'affiche ?

Exact. Si l'on précise une page internet, il va récupérer le code source de la page. Donc évidement, il ne faut mettre que du php, aucun <html> etc.

Par contre, la dernière phrase, je n'ai pas compris, mais alors pas du tout

Si votre base de donnée est en MySQL (je n'ai pas testé les autres), vous avez la possibilité de créer des utilisateurs. Ces utilisateurs ont une limite définissant de quel endroit ils peuvent se connecter. Par défaut, l'on met tout le temps "localhost". Mais, en mettant "%" signifiant "tout serveur", tu pourra te connecter de n'importe où; y compris d'un serveur distant. Donc, sur B, quand tu te connecte à mysql, suffit de marquer (exemple en mysql_*) : "mysql_connect("ton_ip_serveur_a", $user, $pass)".

Posté

Okay !!!

Je comprends. Cette méthode aurait été pas mal du tout mais OVH ne le permet pas sur des mutualisés.

Je vais donc utiliser la première.

Restreindre l'execution du script sur le serveur A par un htaccess, crypter toutes les données avec un algo perso. Ca éviterait partiellement de pouvoir pomper toutes les données.

Merci +1 !

  • 4 semaines plus tard...
Posté (modifié)

Bonjour,

Si ton serveur A a l'extension PHP cURL, je te conseille fortement de l'utiliser. L'utilisation de files_get_content entre serveur peut laisser place à des failles de sécurité. De plus, tu peux passer plusieurs paramètres à cURL.

Pour ton exemple:


$url = 'http://mon_serveur_B:UN_PORT/getinfo.php?user=$_POST[A]&pass=$_POST[B]';

// Ouvre cURL
$ch = curl_init();


curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // par défaut, cURL affiche le résultat directement, mais on veut recevoir les données dans une variable à la place

//exécute la requête
$result = curl_exec($ch);

//ferme cURL il est très important de ne jamais oublier cette ligne car cURL est une extension de PHP et non une fonction de base, il est donc important de le fermer pour ne pas altérer les performances de ton script
curl_close($ch);

JoP

Modifié par JoP
Posté

Re,

cURL est la solution qu'il te faut. C'est très simple à mettre en oeuvre et cela fonctionne parfaitement avec le système que tu veux mettre en place.

Portekoi

  • 2 semaines plus tard...
Posté

Merci beaucoup.

Il est donc préferable d'utiliser curl plutot que file_get_contents lorsqu'on souhaite récupérer des informations d'une autre pas ?

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...