Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/06/2008, 20h06   #1
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
Par défaut [Sécurité] on a piraté mon site

bonjour à tous, en rentrant chez moi, comme d'habitude, je consulte mon site pour savoir s'il y'a de nouveaux membres, etc.. mais cette fois, quelqu'un c'est bien inscrit mais en ayant comme pseudo une instruction javascript apriori. cette instruction ouvre plusieurs alert(""); inutiles ...

pour voir par vous meme : http://publicannonces.com .

Comment empecher quand un membre s'inscrit d'entrer dans la bdd ce genre de script ? je veux dire par la, vaut il mieux qu'apres l'envoi du formulaire je remplace avec php les codes par des lettres ou un message d'ereur, oubien y'a t'il une autre methode pour empecher ce genre de choses?

Je viens de regarder ma bdd et la table correspondante aux membres, et effectivement cela vient du pseudo de cette personne .

Merci pour votre aide .

Ps, je pourrais supprimer ce membre de ma bdd, je suis sure que sa resoudrai le probleme, mais je le laisse pour que vous constatiez par vous meme l'action de cette intrusion.

Merci encore
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 20h48   #2
Rédacteur
 
Avatar de Yoteco
 
Alain Sahli
Ingénieur développement logiciels
Inscription : décembre 2004
Messages : 1 086
Détails du profil
Informations personnelles :
Nom : Alain Sahli
Âge : 25

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2004
Messages : 1 086
Points : 1 479
Points : 1 479
Salut,

Regarde du côté de http://www.php.net/strip_tags et http://www.php.net/htmlentities
Yoteco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 20h57   #3
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
merci pour ces liens que je vais consulter avec grande intention

Enfaite, cette intrusion avait été faite par un modo quelqu'un de ce site pour me rappeler que je n'avais pas securisé mes codes, merci encore
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 22h59   #4
Membre actif
 
Avatar de FrankOVD
 
Inscription : juin 2005
Messages : 408
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 408
Points : 182
Points : 182
Envoyer un message via MSN à FrankOVD
Attention à l'injection de code SQL et compagnie. Je me suis fait une petite fonction qui résoud sommairement ce genre de problèmes.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
/**
 * S'assure que la veriable peut être insérée dans une requête sans erreur et la modifie au besoin
 * Paramètres : mixed $var
 **/
function mysql_safe($var) {
  if((is_bool($var))||(is_numeric($var))) return $var;
  elseif(is_array($var)) {
    //Variables de type array() non supportée par la fonction mysql_safe()
    return NULL;
  }
  else return "\"".addslashes(htmlspecialchars($var))."\"";
}
Ensuite, rien a faire pour l'insertion dans la table

Code :
1
2
3
4
 
$maVar = mysql_safe('"; DROP DATABASE maBD;');
 
$query = "INSERT INTO maTable (monTexte) VALUES (".$mavar.")";
__________________
http://www.overdrunk.net

Pensez à la balise
FrankOVD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 03h01   #5
Invité régulier
 
Inscription : mai 2008
Messages : 35
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 35
Points : 7
Points : 7
slt

Y a une erreur dans le mot oeil surla page d'accueil de ton site. "" oeil ""

Bonjour et bienvenue sur Publicannonces.com . Ce site est encore en cours de construction, mais merci de revenir y jetter un coup d' oeuil de temps en temps car beaucoup de nouveautés y sont ajoutées chaque jours .

Si je peux me rendre utile
referenceur-tv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 09h27   #6
Inactif
 
Inscription : mai 2008
Messages : 179
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 179
Points : 179
Points : 179
Qu'est-ce que c'est que ce mélange aléatoire de fonctions en tout genre pour protéger une requête SQL ?

mysql_real_escape_string est faîte pour ça et suffit à elle seule (il faut juste mettre les valeurs entre quotes dans la requête).

C'est à l'affichage qu'il faut utiliser htmlspecialchars (ou autre du même genre) pour afficher une donnée provenant de l'utilisateur, ou que l'on ne contrôle pas.
sielfried est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 12h36   #7
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
Citation:
Envoyé par sielfried Voir le message
Qu'est-ce que c'est que ce mélange aléatoire de fonctions en tout genre pour protéger une requête SQL ?

mysql_real_escape_string est faîte pour ça et suffit à elle seule (il faut juste mettre les valeurs entre quotes dans la requête).

C'est à l'affichage qu'il faut utiliser htmlspecialchars (ou autre du même genre) pour afficher une donnée provenant de l'utilisateur, ou que l'on ne contrôle pas.
Je suis entièrement daccord, merci à toi

referenceur-tv: merci pour la correction !
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 15h36   #8
Membre actif
 
Avatar de FrankOVD
 
Inscription : juin 2005
Messages : 408
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 408
Points : 182
Points : 182
Envoyer un message via MSN à FrankOVD
Je ne connaissait pas cette fonction.

Quoi qu'il en soit ce mélange de fonction "aléatoire" ne m'as jamais posé problème et je ne vois pas pourquoi ça en causerait si on utilise toujours la même fonction lors de la création d'une requête MySQL. Je donnerai une place à mysql_real_escape_string dans ma fonction au "mélange aléatoire" mais je trouve toujours pratique de laisser ma fonction mettre les quotes elle même, ça allège le code d'un festival de ."\", \"". et facilite la lecture de la requête.
__________________
http://www.overdrunk.net

Pensez à la balise
FrankOVD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 21h01   #9
Inactif
 
Inscription : mai 2008
Messages : 179
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 179
Points : 179
Points : 179
Sauf que addslashes, ça ne sécurise pas (complètement) une requête MySQL. Quant à htmlspecialchars, non seulement ça n'y change pas grand chose, mais ça implique que tu stockes du HTML brut dans ta base de données. Si tu veux afficher ça dans autre chose qu'une page web, et que tu veux pas de HTML, ben tu peux pas (à moins de refaire le traitement inverse avec html_entity_decode, mais c'est moche).
sielfried est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 22h09   #10
Membre actif
 
Avatar de FrankOVD
 
Inscription : juin 2005
Messages : 408
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 408
Points : 182
Points : 182
Envoyer un message via MSN à FrankOVD
Effectivement, j'ai remplacé mes deux fonctions par mysql_real_escape_string car ça fait plus de sens maintenant que je connais cette fonction. Reste qu'il ne reste plus grand chose (et non rien sutout) de bien dangereux dans une string une fois passé à travers addslashes et html_special_chars à mon avis.
__________________
http://www.overdrunk.net

Pensez à la balise
FrankOVD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2008, 20h50   #11
Invité de passage
 
Étudiant
Inscription : juillet 2007
Messages : 1
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2007
Messages : 1
Points : 1
Points : 1
il a été découvert il y a quelques temps une fille de sécurité majeure dans addslashes().

Ensuite mysql_real_escape_string() te protège ta variables comme il le faut pour la simple est bonne raison qu'elle a été crée dans ce but là uniquement.
Ensuite, le htmlspecialchars() ne sert que lors de l'affichage afin d'éviter que si l'utilisateur a entré du code html celui-ci ne vas pas complètement dénaturer ton design (au passage, elle sert a se protéger des failles XSS).

Il ne vaut mieux pas mélanger la protection des données lors de leur collecte et de leur traitement et la protection des données lors de leur affichage. Par exemple l'utilisation de htmlspecialchars() vas rajouter un nombre conséquent de caractères à ta chaines, ce qui n'est pas vraiment conseillés lorsque tu l'insère dans une base de données.
catalyse est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h31.


 
 
 
 
Partenaires

Hébergement Web