[PHP]Sécurité formulaire

WRInaute occasionnel
Salut @ tous

Je pense que tous les développeurs se sont toujours posés la question :
"Comment bien sécurisé les formulaires".
C'est l'un des points noirs sur un site(je pense).


Je recherche donc une fonction du style :

Avec en entrée la chaîne saisie et qui nous retourne un booléen avec par exemple True si la chaîne ne pose pas de problème de sécurité et False s'il y a problème.

Pourquoi réinventer la roue :p

Ca existe ce genre de fonction qui est quasi obligatoire sur tous les sites et qui soit plutot connu pour être assez bon ^^ ?

Merci par avance ;).
 
WRInaute impliqué
fredsoft a dit:
yuston a dit:


lol mettre des champs hidden...quand j'ai vu cela je ne suis meme pas allé plus loin c'est écrit par un débutant

Tu as été plus loin que moi alors, je me suis arreté à
Du point de vue sécurité, il est fortement conseillé d’utiliser la méthode POST pour vos formulaires, (surtout si celui-ci envoie des données confidentielles telles que login ou password), étant donné que la méthode GET fait passer les variables par l’URL, et donc ces variables peuvent être plus facilement détournée.

C'est déjà une preuve le gars ne sais pas de quoi il parle.
 
WRInaute impliqué
fredsoft a dit:
yuston a dit:
lol mettre des champs hidden...quand j'ai vu cela je ne suis meme pas allé plus loin c'est écrit par un débutant
fredsoft a écrit:
yuston a écrit:
Sino
n un excellent article publié sur le hub: http://www.webmaster-hub.com/publicatio ... le145.html
lol mettre des champs hidden...quand j'ai vu cela je ne suis meme pas allé plus loin c'est écrit par un débutant
Tu as été plus loin que moi alors, je me suis arreté à
Citation:
Du point de vue sécurité, il est fortement conseillé d’utiliser la méthode POST pour vos formulaires, (surtout si celui-ci envoie des données confidentielles telles que login ou password), étant donné que la méthode GET fait passer les variables par l’URL, et donc ces variables peuvent être plus facilement détournée.

C'est déjà une preuve le gars ne sais pas de quoi il parle.
Je suis impressioné par le nombre de Génies du php qui participent à ce forum. De plus, ils ne se contentent pas de critiquer et savent mettre à disposition leur savoir encyclopédique. Quelle leçon de vie :lol:
 
WRInaute occasionnel
Hum... Merci pour votre grande aide mais ce n'est pas du tout ça que je recherche...

Php souffre malheureusement de faille de sécurité...
Il y a quelques temps, si mes souvenirs sont bons, le fait d'imbriquer par exemple(j'ai un doute dans le sens de l'imbriquation) :
Code:
htmlentities(stripslashes($chaine));
causé une faille de sécurité...

C'est sur genre de point que je me pose des questions... Après, les tutos "bateaux" sur la sécurisation des formulaires, je les connait ;).

D'ou ma question d'une fonction "open-source" qui serait tenu à jour suite aux différents exploits de hackers.
 
Nouveau WRInaute
tester

bonjour,

j'ai des formualires sur plusieurs sites et j'ai utilisé un scrit trouvé sur internet.
Récemment, j'ai reçu des mails dans la boite qui reçoit en général les données du formulaire avec pleins de caractères bizarres: apparemment,un robot essaie de savoir si mon formulaire est sécurisé.

Y a-t-il un outil sur le web qui peut tester la sécuritéde mon formulaire ? Je ne suis pas assez avancé en php et autre pour regarder moi même si mon code est ok. J'aimerais juste soumettre mon formulaire à un outil qui me dit si oui ou non il est secure ou si il peut être utilisé par des spammeurs.

vous savez si un tel outil existe ?
merci
blast
 
WRInaute impliqué
Le plus simple pour bloquer l'accès à un bot à un formulaire, c'est de générer un code de sécurité transmis par le biais d'une image, le crypter en md5 ou sha1, transmettre la forme cryptée via une session, et comparer la saisie de l'utilisateur que l'on cryptée avec le code précrypté.

C'est ce que j'utilise à peu près pour mes sites, et ça marche plutôt bien.
 
WRInaute passionné
coucou! quand on parle de moi, j'arrive! :wink:

Serieusement, je passais par hazard...

Pour en revenir au sujet, tout dépends de l'utilisation du formulaire.

Pour un simple formulaire de contact, un code secret généré graphiquement suffit à protéger des bot. Pour la protection contre l'injection de code, il n'y a pas 36 solutions:

si tu reçoit du code sans en attendre, tu vire carrément!

Maintenant si ton formulaire est un formulaire de connection à un espace client ou membre, il faut prevoir une protection contre toute injection de code MYSQL. Tu commence par un stripslashes (sauf si magic quotes est activé):
Code:
if (get_magic_quotes_gpc()) {
    $login= stripslashes($_POST['login']);
} else {
    $login = $_POST['login'];
}
ensuite tu utilise la fonction magique!
Code:
    $login=mysql_real_escape_string($login);

Quoiqu'il arrive, ne jamais utiliser sans traitement ou verification les données venant d'un formulaire!
 
WRInaute accro
Bourriquet a dit:
Le plus simple pour bloquer l'accès à un bot à un formulaire, c'est de générer un code de sécurité transmis par le biais d'une image, le crypter en md5 ou sha1, transmettre la forme cryptée via une session, et comparer la saisie de l'utilisateur que l'on cryptée avec le code précrypté.

C'est ce que j'utilise à peu près pour mes sites, et ça marche plutôt bien.
Pourquoi le crypter ? (enfin le hasher plutôt)
 
Nouveau WRInaute
merci de vos réponses... mon formulaire comprends juste trois champs que les internaute speuvent remplir pour me transmettre leurs coordonnées. elles arrivent dans ma boite mail. j'ai fait cela avec un script php trouvé sur le net.

j'aimerais juste pouvoir vérifier si il est securisé ou non avec un outil que je trouverais sur le web. mais bon peut-être que ça n'existe pas...

merci à vous !
 
Nouveau WRInaute
tentative d'intrusion

Bonjour,

Voilà plusieurs fois que l'on tente d'utiliser le formulaire de contact de notre site pour s'accaparer le smtp. Le formulaire est 'relativement' (?) bien sécurisé. Voici le genre de mail que nous recevons :

Code:
Message de t3920@notresite.com considered Content-Type: multipart/alternative; boundary=cb63427ee3b8c966932f9a0979eff73e MIME-Version: 1.0 Subject: spoke very prettily bcc: bajfla@aol.com This is a multi-part message in MIME format. --cb63427ee3b8c966932f9a0979eff73e Content-Type: text/plain; charset=\"us-ascii\" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit the merchant s family. aren had departed just the day before. n vain had she awaited his visit throughout the three weeks. ou quite forget your true friends said the ladies. elieve us, aja was a --cb63427ee3b8c966932f9a0979eff73e-- . , email : t3920@notresite.com

bajfla@aol.com tente ainsi te tester s'il peut utiliser notre serveur pour envoyer des mails.

Qui connaît cette méthode ?

Comment renforcer la sécurisation ?
 
WRInaute impliqué
thierry8 a dit:
Bourriquet a dit:
Le plus simple pour bloquer l'accès à un bot à un formulaire, c'est de générer un code de sécurité transmis par le biais d'une image, le crypter en md5 ou sha1, transmettre la forme cryptée via une session, et comparer la saisie de l'utilisateur que l'on cryptée avec le code précrypté.

C'est ce que j'utilise à peu près pour mes sites, et ça marche plutôt bien.
Pourquoi le crypter ? (enfin le hasher plutôt)

Le but d'une telle opération est de s'assurer que c'est bien un utilisateur qui rempli le formulaire.

Seul un utilisateur peut lire le contenu de l'image, du moins si tu t'arranges pour que le traitement de l'image par un bot soit rendu difficile.

Ton formulaire donc serait validé uniquement si la saisie du chiffre inscrit sur l'image correspond. Donc quelque part, tu dois le transmettre. Mais tu ne dois pas le transmettre en clair, sinon un bot pourrait passer cette étape. Si tu le hashes, et que tu compares les deux hashs (saisi et transmi) cela veut dire que le bot doit trouver le chiffre dont le hash est donné par la session, car le script d'identification lui hashe ce que tu lui donne comme paramètre.

Or, trouver la valeur d'un hash est chose compliquée, voire impossible, car il faut employer des méthodes plus compliquées.

Aucun système n'est impénétrable. Mais on peut rendre cela compliqué, de manière à réduire le nombre d'attaques.
 
WRInaute accro
Bourriquet a dit:
Ton formulaire donc serait validé uniquement si la saisie du chiffre inscrit sur l'image correspond. Donc quelque part, tu dois le transmettre. Mais tu ne dois pas le transmettre en clair, sinon un bot pourrait passer cette étape. Si tu le hashes, et que tu compares les deux hashs (saisi et transmi) cela veut dire que le bot doit trouver le chiffre dont le hash est donné par la session, car le script d'identification lui hashe ce que tu lui donne comme paramètre.

Or, trouver la valeur d'un hash est chose compliquée, voire impossible, car il faut employer des méthodes plus compliquées
Mais c'est inutile de le hasher (selon moi).
En effet le numéro inscrit sur l'image, qui doit être reproduit dans un champ
par l'utilisateur est aléatoire. Donc lorsque l'utilisateur le transmet, il peut être
en clair, du fait qu'il ni aurra qu'une seul vérification. Si le code est bon, ça passe...
S'il ne l'est pas, on recréer un code image, et rebelote.
Donc si un quelqu'un intercepte le code, il ne pourra s'en servir, du fait que
lorsqu'il demandera la page de contact (ou autre) le code sera généré uniquement
pour lui. Et l'autre code déjà périmé.

non ?
 
Discussions similaires
Haut