Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
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 20/02/2006, 06h33   #1
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
Par défaut [Sécurité] Demande avis sur risque de spam.

Bonjour,

Je suis en train de développer un formulaire de contact pour mon forum en libre accès.
Les visiteurs n'auront pas connaissance de l'email de la personne qu'ils veulent contacter.
J'ai filtré les formulaires pour les sécuriser, je n'ai pas prévu de controle sur l'ip, pour, par exemple, limiter le nombre d'envoi de message à 1 toute les 20 secondes, comme je l'ai fait sur le formulaire de participation au forum.

Pensez-vous que cela soit utile, vu que je filtre tout de même les données du formulaire ?
Comment peuvent-ils détourner le formulaire de contact si il est filtré ? (Par exemple, seules les lettres sont admises dans le textarea et il y a un htmlspecialchars).
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 09h26   #2
Rédacteur/Modérateur
 
Avatar de marcha
 
Homme Marc Chappuis
Développeur Web
Inscription : décembre 2003
Messages : 1 535
Détails du profil
Informations personnelles :
Nom : Homme Marc Chappuis
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2003
Messages : 1 535
Points : 2 206
Points : 2 206
Jette un oeil à ça

http://www.phpsecure.info/v2/article...dersInject.php
marcha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 11h42   #3
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
Merci pour ton lien.

En fait j'ai déjà lu cette page, d'où les dispositions de filtrage que j'ai adopté.

A bien y réfléchir, je pense que si le spammeur est bloqué dans son injection de code, rien ne lui sert de soumettre le formulaire x fois à la minutes.

Un avis contraire ?
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 12h09   #4
Rédacteur/Modérateur
 
Avatar de marcha
 
Homme Marc Chappuis
Développeur Web
Inscription : décembre 2003
Messages : 1 535
Détails du profil
Informations personnelles :
Nom : Homme Marc Chappuis
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2003
Messages : 1 535
Points : 2 206
Points : 2 206
Les spammeurs font d'abord du "fishing" en scanant les formulaires web
à la recherche de "passerelles ouvertes".

j'ai pu observer sur mes formulaires de contact qu'il bcc à un email à lui
(chez aol dans mon cas). Il insère un id dans le message, celui-ci lui servant à retrouver le serveur qui a laisser passer son mail.

Ce fishing est très agaçant car cela provoque l'envoi du mail normal au
destinataire prévu.

Le spammeur a des chances de réussir si il injecte des headers dans un champs qui est lui même inscrit (sans filtrage) dans le 4ème paramètre de
la fonction mail. Celà peut être le cas pour un formulaire qui utilise le
champ email pour le placer comme Reply-To dans les headers par exemple.

Le spammeur que j'ai pu observer tente de remplir différents champs du
formulaire avec des injections.

Cependant j'ai trouvé un moyen simple de filtrer, tu ajoutes un champ
caché avec une constante. par exemple:

Code :
1
2
 
<input type='hidden' name='toto' value='toto' />
Dans mon cas, le robot de fishing rempli ce champs avec autre chose.
Ainsi je test si $_POST['toto']=='toto' et le tour est joué.

Pour ce qui est de ta limite à 1 post toutes les 20 secondes, je pense qu'il
faut être prudent. Il arrive que des gens se trompent dans une donnée
et repostent juste derrière. D'autre part, l'ip n'identifie pas un utilisateur,
mais parfois un groupe (derièrre un passerelle dans une entreprise par
exemple) cela peut être embètant si un prof présente ton formulaire dans
une sale de cours et que tous le monde post.

Je pense qu'il te faudrait accèpter plusieurs post de la même IP avant de commencer à ralentir.
marcha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 13h10   #5
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
Merci Marcha, pour cette réponse très intéressante.

Quelques questions qui me viennent à l'esprit tout de suite :
- Y'a t'il des caractères/mots qui doivent être automatiquement utilisés lors de l'envoi d'un header, dans le but de spammer (ex: inscrire TYPE-MIME).
==> Auquel cas je bloque les envois de formulaire qui comportent ces caractères.
- Si je force, avec les regexp, à n'envoyer des messages ne comportant que des chiffres et des lettres ? Cela est-il efficace?
- Quand tu dis que le spammeur fait des injections, tu parles d'injections sql ? mysql_real_escape_string l'en empêche alors ?
- J'avoue ne pas avoir bien compris le coup de la constante.


Voilà déjà quelques questions, si tu veux bien y répondre, peut-être d'autre après

(Les autres ne vous privez pas hein )
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2006, 15h33   #6
Rédacteur/Modérateur
 
Avatar de marcha
 
Homme Marc Chappuis
Développeur Web
Inscription : décembre 2003
Messages : 1 535
Détails du profil
Informations personnelles :
Nom : Homme Marc Chappuis
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2003
Messages : 1 535
Points : 2 206
Points : 2 206
Relis la page dont je t'ai donné le lien ci-dessus

Le champs caché c'est tout simple, le spammeur utilise un programme
pour poster, il scan tous les input de ton formulaire et y place des données.
du coup, il ne concerve pas la valeur du champs caché et tu le détect ainsi.
(Attention, un spammer plus intelligent pourrait la conserver :-)
marcha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2006, 13h07   #7
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
Ok j'ai compris le coup du champ caché, merci.

J'ai lu aussi qu'il faut désactiver le "catch-all' pour empêcher les spammeurs de créer des fausses adresses email utilisant le domaine du site spammé.

vous savez qeulque chose sur ce sujet ?
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2006, 16h09   #8
Invité régulier
 
Inscription : janvier 2004
Messages : 24
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 24
Points : 8
Points : 8
Grosse bêtise. Message retiré.

Dimitri01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h23.


 
 
 
 
Partenaires

Hébergement Web