IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Limiter l'exécution d'un script au serveur uniquement


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 17
    Points : 11
    Points
    11
    Par défaut [Système] Limiter l'exécution d'un script au serveur uniquement
    Bonjour à tous,

    Ayant cherché une réponse à ma question en vain,... malgré la grande participation de ce bon forum, je me permets donc de vous la poser.

    J'aimerais pouvoir exécuter un script par mon serveur.
    Cependant, afin d'éviter les problèmes de sécurité, j'aimerais que ce ne soit que le serveur qui puisse exécuter le script et pas un client qui tapperait l'url à la volée dans son navigateur.

    Donc mon script se trouverait par exemple dans le dossier racine sur mon url.
    (script en .php biensur)
    h * *p://***.monsite.com/script.php

    J'ai déja essayé quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	$var1 = $_SERVER['SERVER_ADDR'];
     
    	if ($var1 != $_SERVER['SERVER_ADDR'])
    	{
    	echo 'Vous n avez rien à faire ici';
    	exit;
    	} 
    // ici execution du code
    le_code_a_executer_par_le_serveur_uniquement
    Mais sans résultats.
    Si je tappe l'url il s'execute quand même

    Quelqu'un aurait-il un début de piste svp ?

    Je vous remercie d'avance

  2. #2
    Membre actif Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Points : 278
    Points
    278
    Par défaut
    Ce code :

    Citation Envoyé par Mawashigeri Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	$var1 = $_SERVER['SERVER_ADDR'];
     
    	if ($var1 != $_SERVER['SERVER_ADDR'])
    	{
    	echo 'Vous n avez rien à faire ici';
    	exit;
    	} 
    // ici execution du code
    le_code_a_executer_par_le_serveur_uniquement

    n'a aucun sens, puisque si

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $var1 = $_SERVER['SERVER_ADDR'];
    alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($var1 != $_SERVER['SERVER_ADDR'])
    est équivalent à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($_SERVER['SERVER_ADDR'] != $_SERVER['SERVER_ADDR'])
    qui est toujours faux !

    Essaie ceci (avec l'IP de ton serveur) :

    Citation Envoyé par Mawashigeri Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	$var1 = $_SERVER['SERVER_ADDR'];
     
    	if ($var1 != "192.168.0.1")
    	{
    	echo 'Vous n avez rien à faire ici';
    	exit;
    	} 
    // ici execution du code
    le_code_a_executer_par_le_serveur_uniquement
    Je suppose que tu lances le script par wget depuis le serveur en question ?
    Etre à son compte, y'a rien de mieux !

  3. #3
    Membre averti Avatar de jota5450
    Inscrit en
    Janvier 2006
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Janvier 2006
    Messages : 263
    Points : 332
    Points
    332
    Par défaut
    slt...

    de ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $var1 = $_SERVER['SERVER_ADDR'];
    la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($var1 != $_SERVER['SERVER_ADDR'])
    ca risque de jamais rentrer dans ton if ...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Je vous remercie pour vos réponses Mogwaï et jota5450
    A vrai dire je suis encore une bille en .php mdr

    Mogwaï
    Je suppose que tu lances le script par wget depuis le serveur en question ?

    A vrai dire, j'utilise phpjobscheduler pour executer le script.
    C'est pour cela que je ne veux que ce ne soit que le serveur qui puisse l'utiliser.
    Cependant, j'ai remarqué que si je tape l'url de n'importe quel pc le script s'exécute.
    N'y a t'il pas un moyen de limiter l'exécution au serveur uniquement ?
    Dans le sens, en combinant:
    $_SERVER['REMOTE_ADDR'] et
    $_SERVER['SERVER_ADDR']
    quelque chose comme ca ?

    Si l'ip du visiteur est le serveur(phpjobscheduler), il s'exécute.
    Sinon si n'importe quel ip tape l'url il ne s'exécute pas.

    Je vous remercie pour vos réponses.

  5. #5
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par Mawashigeri Voir le message
    Dans le sens, en combinant:
    $_SERVER['REMOTE_ADDR'] et
    $_SERVER['SERVER_ADDR']
    quelque chose comme ca ?
    oui compare ces 2 variables

Discussions similaires

  1. Limites d'exécution d'un script
    Par Aloneghost dans le forum Langage
    Réponses: 4
    Dernier message: 03/09/2010, 13h06
  2. [Système] Interrompre l'exécution d'un script..
    Par FrankOVD dans le forum Langage
    Réponses: 2
    Dernier message: 01/09/2006, 21h21
  3. Réponses: 2
    Dernier message: 21/04/2006, 15h40
  4. [Système] Erreur d'exécution d'un petit script
    Par couscoussier dans le forum Langage
    Réponses: 3
    Dernier message: 04/04/2006, 10h04
  5. Réponses: 18
    Dernier message: 15/02/2006, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo