-
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 ?
-
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
-
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 :mouarf:
Par exemple est-ce qu'une boucle en php du style while (1 == 1) {} le bloquerait pour un moment ?
-
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).
-
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.
-
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.
-
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 ?" .
-
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.