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 :

Bloquer un script php


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 168
    Points : 49
    Points
    49
    Par défaut Bloquer un script php
    Bonjour,
    Un petit malin s'amuse à invoquer plusieurs fois par jour un script php qui se trouve sur mon serveur; je le sais parce que ce script m'envoie un mail.
    Il nécessite des paramètres que le script vérifie, et comme les valeurs ne sont pas correctes le script ne fait rien (sauf le mail qui m'en informe), mais ça me dérange.
    J'ai essayé en java de fermer la fenêtre du browser appelant mais ça ne fonctionne pas.
    Avant j'envoyais echo "Invalid Request", maintenant je ne fais rien du tout (sauf le mail qui m'en informe) mais le petit jeu continue.
    Comment puis-je embêter celui qui s'amuse ainsi ?

  2. #2
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 757
    Points : 2 992
    Points
    2 992
    Par défaut
    Bonjour

    Si l'idée est d'interdire l'appel à un script php depuis une URL (p.ex bloquer test.php) tu peux passer par le fichier .htaccess

    Exemple https://stackoverflow.com/questions/...le-in-htaccess
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 168
    Points : 49
    Points
    49
    Par défaut
    Merci mais non car je ne pourrais plus l'appeler moi-même.
    L'idée est plutôt d'embêter quelqu'un qui appellerait le script via URL avec des paramètres invalides.
    Par embêter je veux dire quelque chose qui dérange l'appelant comme fermer sa fenêtre :
    j'ai essayé avec echo "<script language=\"Javascript1.1\">window.close();</script>"; mais ça ne fonctionne que si elle a été ouverte en JS.
    Je cherche une idée pour que cet appel invalide soit désagréable pour l'appelant
    Par exemple est-ce qu'une boucle en php du style while (1 == 1) {} le bloquerait pour un moment ?

  4. #4
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 757
    Points : 2 992
    Points
    2 992
    Par défaut
    Si c'est une page pour toi seul, tu peux whitelister ton adresse IP et ma proposition de passer par htaccess reste valable. En fait si ce script est juste pour toi seul, tu fais un deny all except ton IP.

    Sinon tu peux aussi modifier ton script pour exiger en URL (querystring) un code tel que CESTMOI=1. C'est du bricolage mais tu inverses ta proposition : tout appel au script plantera sauf si ton paramètre est présent et validé et ça, seul toi le connaît. Bricolage mais cela pourra rencontrer ton besoin immédiat (et facile à mettre en œuvre).
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 168
    Points : 49
    Points
    49
    Par défaut
    Non, ce n'est pas une page pour moi seul, mais elle fait partie d'un ensemble logique.
    Le problème est que certains appellent cette page indépendamment.
    Il faut passer plusieurs paramètres dont le script vérifie la validité, il réagit correctement en ne faisant ... rien : l'appelant obtient une page blanche.
    Ce qui est troublant est qu'il continue à s'amuser à appeler ce script, raison pour laquelle je voudrais l'embêter afin de l'en dissuader.

  6. #6
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 757
    Points : 2 992
    Points
    2 992
    Par défaut
    Allez autre possibilité, vérifier le http_referrer https://gist.github.com/barbwiredmed...57520b93b633ad

    Cette variable sera vide en cas d'accès direct au script, sera remplie en cas de redirect depuis un autre script.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 168
    Points : 49
    Points
    49
    Par défaut
    Ce script fait partie d'un ensemble logique mais n'est pas appelé par un autre script, du moins pas par un script php.
    Même si c'était le cas que devrait-il faire pour embêter l'appelant ?

    Je répète que je ne cherche pas à savoir comment savoir que l'appel n'est pas normal, le script est actuellement capable de le détecter,
    ma question est "comment faire pour que cet appel invalide soit désagréable pour l'appelant ?" .

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 168
    Points : 49
    Points
    49
    Par défaut
    J'ai essayé de faire une boucle : après 300 secondes j'obtiens le message
    Fatal error: Maximum execution time of 300 seconds exceeded in xxx.php on line 32

    Une idée pourrait donc être de faire une boucle de moins de 300 secondes puis d'en sortir proprement, ou plus simplement sleep(250);je suppose que celui qui essayerait s'impatientera avant.

    Si vous avez une meilleure idée je suis toujours preneur.

Discussions similaires

  1. [MySQL] Optimisation de scripts PHP/MySQL
    Par DgG dans le forum PHP & Base de données
    Réponses: 368
    Dernier message: 20/11/2013, 18h59
  2. Quel est le meilleur script PHP de portail (CMS) ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 187
    Dernier message: 18/10/2012, 07h45
  3. Exécution script php
    Par devmat dans le forum Linux
    Réponses: 11
    Dernier message: 22/04/2007, 11h14
  4. Pb d'execution de requete avec un script php
    Par ythierrin dans le forum Requêtes
    Réponses: 3
    Dernier message: 22/08/2003, 14h34

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