Page 1 sur 1

problème de securité avec table/php

Posté : 26 août 2009, 08:34
par arkhon21
Bonjour,

J'ai remarqué depuis quelques temps que des insertions vide dans les champs de mes tables avaient lieu.

Cependant j'ai eu la bonne idée d'insérer dans mes script avec formulaire, date, heure et addresse IP (au cas ou); Du coup j'ai relever que cela provenait de amazon.com, ebay, mais aussi d'addresse ip a bucarest.

J'ai l'impression que ce sont des robots qui passe par les formulaires/script php et qui déclenchent les insertions

Quoi qu'il en soit, cela vous est il déjà arriver? Et quelles solutions php préconisez-vous pour éviter ces insertions "sauvages"?

Re: problème de securité avec table/php

Posté : 26 août 2009, 08:56
par Cobaye
Y a des robots qui postent sur les formulaires et souvent pour des sites x etc... un genre de span ! une solution consiste a ajouté au formulaire un captcha. Depuis que j'en ai mis un sur mon site, les faux formulaires de contact sont rares

Re: problème de securité avec table/php

Posté : 26 août 2009, 09:18
par Dr@ke
J'ai remarqué depuis quelques temps que des insertions vide dans les champs de mes tables avaient lieu.
Sinon pour les champs vides, une vérification du champ au moment de l'envoie du formulaire:
Exemple:
if (empty($_POST['champ'])) {   //Si la valeur de champ est vide -> Bye
exit;
}
ou
if (!preg_match("/^[a-z0-9]{5,}$/", $_POST['champ'])) { // Si moins de 5 lettres et/ou chiffres -> Dehors
exit;
}

Re: problème de securité avec table/php

Posté : 26 août 2009, 09:57
par FuZZyLine
Salut,
Bonjour,
J'ai remarqué depuis quelques temps que des insertions vide dans les champs de mes tables avaient lieu.
Cependant j'ai eu la bonne idée d'insérer dans mes script avec formulaire, date, heure et addresse IP (au cas ou); Du coup j'ai relever que cela provenait de amazon.com, ebay, mais aussi d'addresse ip a bucarest.
J'ai l'impression que ce sont des robots qui passe par les formulaires/script php et qui déclenchent les insertions
Quoi qu'il en soit, cela vous est il déjà arriver? Et quelles solutions php préconisez-vous pour éviter ces insertions "sauvages"?
@Cobaye: +1 ;)

Petit ajout: Es-tu sur qu'il s'agisse des "vrais" sites sus-nommés? Beaucoup de petits malins s'amusent dans le monde
de la pèche (joke). Si ce sont les "vrais" sites envoie un mail de plainte-anti spams, avec IP:Date:Heure:Copy du mail.
Celle-ci (j'imagine) sera sans effet mais les énervera un brin... surtout que tu ne devrais pas être le seul à le faire ;)

@+ ;)

Re: problème de securité avec table/php

Posté : 26 août 2009, 15:16
par arkhon21
J'ai remarqué depuis quelques temps que des insertions vide dans les champs de mes tables avaient lieu.
Sinon pour les champs vides, une vérification du champ au moment de l'envoie du formulaire:
Exemple:
if (empty($_POST['champ'])) {   //Si la valeur de champ est vide -> Bye
exit;
}
ou
if (!preg_match("/^[a-z0-9]{5,}$/", $_POST['champ'])) { // Si moins de 5 lettres et/ou chiffres -> Dehors
exit;
}
Donc lorsque ce code est placé, ça donne une page blanche? exacte?

Re: problème de securité avec table/php

Posté : 26 août 2009, 15:28
par Dr@ke
Donc lorsque ce code est placé, ça donne une page blanche? exacte?
Exactement, car la fonction exit() stoppe l'exécution du script, donc si exit() est en début de page, comme rien avant, et rien après car tout est stoppé -> Page blanche...
C'était juste un exemple...

En fait, c'est mieux comme ceci, exemple:
if (isset($_POST['champ']) && preg_match("/^[a-z0-9]{5,}$/", $_POST['champ'])) { 
// Si le formulaire est envoyé et que tu reçois la valeur champ et qu'il existe au moins 5 lettres et/ou chiffres -> Le script continue normalement et donc envoie le mail...

// Ici Ton Code

}
else { // Sinon Erreur et mail non envoyé
echo 'Veuillez remplir le champ correctement,svp'; 
}
OU
if (isset($_POST['champ']) && !empty($_POST['champ'])) { 
// Si le formulaire est envoyé et que tu reçois la valeur champ et qu'elle n'est pas vide -> Le script continue normalement et donc envoie le mail...

// Ici Ton Code

}
else { // Sinon Erreur et mail non envoyé
echo 'Veuillez remplir le champ correctement,svp'; 
}
PS:Ensuite il faut que tu adaptes et personnalises tout ceci avec ta page et ton code...

Re: problème de securité avec table/php

Posté : 31 août 2009, 08:33
par Dr@ke
Petit Up, histoire de compléter:

Additionnellement, tu peux utiliser une vérification supplémentaire:
Tu récupères l'heure à la génération du formulaire, ensuite tu la compares avec l'heure d'envoi du formulaire.
Si la différence de temps est inférieur à 1 seconde -> Bot...
En effet, il est difficile pour une personne de remplir un formulaire, dont le Captcha, en moins d'une seconde.
Évidemment, un bot personnalisé pourrait contourner cette vérification, mais pour la majorité -> non.
Mais, dans tous les cas, cela te permet aussi d'ajouter une fonction "anti-flood" à tes formulaires...

Re: problème de securité avec table/php

Posté : 31 août 2009, 12:29
par arkhon21
Petit Up, histoire de compléter:

Additionnellement, tu peux utiliser une vérification supplémentaire:
Tu récupères l'heure à la génération du formulaire, ensuite tu la compares avec l'heure d'envoi du formulaire.
Si la différence de temps est inférieur à 1 seconde -> Bot...
En effet, il est difficile pour une personne de remplir un formulaire, dont le Captcha, en moins d'une seconde.
Évidemment, un bot personnalisé pourrait contourner cette vérification, mais pour la majorité -> non.
Mais, dans tous les cas, cela te permet aussi d'ajouter une fonction "anti-flood" à tes formulaires...
C'est génial Merci!!!