Améliorer et confirmer super formulaire php sécurisé.
Fermé
maverick13
Messages postés
9
Date d'inscription
lundi 5 novembre 2012
Statut
Membre
Dernière intervention
6 avril 2013
-
5 nov. 2012 à 22:38
maverick13 Messages postés 9 Date d'inscription lundi 5 novembre 2012 Statut Membre Dernière intervention 6 avril 2013 - 6 nov. 2012 à 03:44
maverick13 Messages postés 9 Date d'inscription lundi 5 novembre 2012 Statut Membre Dernière intervention 6 avril 2013 - 6 nov. 2012 à 03:44
A voir également:
- Améliorer et confirmer super formulaire php sécurisé.
- Mode sécurisé samsung - Guide
- Super copier - Télécharger - Gestion de fichiers
- Formulaire de réclamation facebook - Guide
- Easy php - Télécharger - Divers Web & Internet
- Exemple de mot de passe sécurisé - Guide
2 réponses
Atropa
Messages postés
1940
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
274
6 nov. 2012 à 03:02
6 nov. 2012 à 03:02
bonsoir,
pour la sécurité d'un formulaire, il faut un jeton et pour les fichiers il faut vérifier le type mime en plus de l'extension.
inutile de regarder a l'intérieur si il y a du php.
si le serveur est bien configuré il n'y a pas de risque qu'il soit exécuté si ce n'est pas un fichier php
envoyer un mail avec l'id de l'utilisateur est complètement inutile surtout pour une extension qui n'est pas valide. tu risque de spammer ta boite mail et de ton façon quelqu'un qui veut pirater ton site n'utilisera pas un vrai utilisateur ou l'utilisateur ne lui appartiendra pas
plus généralement passer toutes les variables externes à htmlentities à l'aide d'une unique fonction au début de chaque page. htmlentitie empêche aussi l'insertion de php et de toute façon si ce qui est entré dans le formulaire n'est pas écrit en dure dans un fichier php et qu'il n'est pas inclut dans le code il ne sera pas exécuté même si il en contient
faire très attention aux failles include qui peuvent permettre de récupérer n'importe quel fichier sources
pour sql il faut utiliser les requêtes préparé de pdo qui rendent les injections sql impossible si elle sont bien faite sans avoir a passer par une fonction de sécurisation
pour les mots de passe ils doivent être hashé avant d'être stocké en sha256 au minimum et avec une chaine de caractère concaténé au début ou a la fin avant le hash pour éviter les comparaison des hash.
ensuite pour la vérification il doivent juste être comparé jamais stocké plusieurs fois ou avoir des valeur nul
ne pas compté sur les langages client pour la sécurité. toutes les requêtes peuvent facilement être écrites à la main.
un fichier appelé par xhr ou autre est aussi vulnérable qu'un autre... (ca parait con mais ça arrive souvent qu'ils ne soient pas protégé comme il faut)
faire attention que les fichiers a inclure ne soit pas accessible directement
pour ce qui et de l'identification ou de l'inscription
pour l'inscription il faut un jeton et un captcha hasher le passe et le stocker
pour l'identification un jeton (comme pour tout formulaire) et pour vérifier le mot de passe il faut le hasher et le rechercher en même temps que le pseudo
par exemple SELECT id FROM membre WHERE identifiant = :ident && pass = :pass LIMIT 1
ne jamais sortir le mot de passe de la base de donnée et ne jamais le stocker autre part !!!
il faut aussi mettre un captcha au bout de 3 mot de passe erroné pour un identifiant ou une ip
un mail peut être envoyé a la limite si un formulaire est envoyé sans avoir le bon jeton mais ce n'est même pas sur que ce soit pour une tentative de piratage
pour la sécurité d'un formulaire, il faut un jeton et pour les fichiers il faut vérifier le type mime en plus de l'extension.
inutile de regarder a l'intérieur si il y a du php.
si le serveur est bien configuré il n'y a pas de risque qu'il soit exécuté si ce n'est pas un fichier php
envoyer un mail avec l'id de l'utilisateur est complètement inutile surtout pour une extension qui n'est pas valide. tu risque de spammer ta boite mail et de ton façon quelqu'un qui veut pirater ton site n'utilisera pas un vrai utilisateur ou l'utilisateur ne lui appartiendra pas
plus généralement passer toutes les variables externes à htmlentities à l'aide d'une unique fonction au début de chaque page. htmlentitie empêche aussi l'insertion de php et de toute façon si ce qui est entré dans le formulaire n'est pas écrit en dure dans un fichier php et qu'il n'est pas inclut dans le code il ne sera pas exécuté même si il en contient
faire très attention aux failles include qui peuvent permettre de récupérer n'importe quel fichier sources
pour sql il faut utiliser les requêtes préparé de pdo qui rendent les injections sql impossible si elle sont bien faite sans avoir a passer par une fonction de sécurisation
pour les mots de passe ils doivent être hashé avant d'être stocké en sha256 au minimum et avec une chaine de caractère concaténé au début ou a la fin avant le hash pour éviter les comparaison des hash.
ensuite pour la vérification il doivent juste être comparé jamais stocké plusieurs fois ou avoir des valeur nul
ne pas compté sur les langages client pour la sécurité. toutes les requêtes peuvent facilement être écrites à la main.
un fichier appelé par xhr ou autre est aussi vulnérable qu'un autre... (ca parait con mais ça arrive souvent qu'ils ne soient pas protégé comme il faut)
faire attention que les fichiers a inclure ne soit pas accessible directement
pour ce qui et de l'identification ou de l'inscription
pour l'inscription il faut un jeton et un captcha hasher le passe et le stocker
pour l'identification un jeton (comme pour tout formulaire) et pour vérifier le mot de passe il faut le hasher et le rechercher en même temps que le pseudo
par exemple SELECT id FROM membre WHERE identifiant = :ident && pass = :pass LIMIT 1
ne jamais sortir le mot de passe de la base de donnée et ne jamais le stocker autre part !!!
il faut aussi mettre un captcha au bout de 3 mot de passe erroné pour un identifiant ou une ip
un mail peut être envoyé a la limite si un formulaire est envoyé sans avoir le bon jeton mais ce n'est même pas sur que ce soit pour une tentative de piratage
maverick13
Messages postés
9
Date d'inscription
lundi 5 novembre 2012
Statut
Membre
Dernière intervention
6 avril 2013
6 nov. 2012 à 03:44
6 nov. 2012 à 03:44
Faire le tour, faire le tour, Wow, je ne m'attendais pas à autant d'amélioration :).
Disons que je vais retourner à mes devoirs et re-proposer d'ici quelques jours un code plus efficace, niveaux sécurité.
Si j'ai bien compris.
Donc, quand on tape '' sécuriser son formulaire php '' sur google, tous les principales résultats de solutions ne sont que très peux efficace ? Peut-être est-ce trop complexe d'appliquer les recommandations vraiment efficace ?
Je vais plancher sur le sujet et revenir pour la suite.
Merci encore.
Disons que je vais retourner à mes devoirs et re-proposer d'ici quelques jours un code plus efficace, niveaux sécurité.
Si j'ai bien compris.
Donc, quand on tape '' sécuriser son formulaire php '' sur google, tous les principales résultats de solutions ne sont que très peux efficace ? Peut-être est-ce trop complexe d'appliquer les recommandations vraiment efficace ?
Je vais plancher sur le sujet et revenir pour la suite.
Merci encore.
Modifié par Atropa le 6/11/2012 à 03:06
quand il y a une identification il faut aussi vérifier sur chaque page l'identité et la cohérence du visiteur, notamment les droits attribué a son id
j'espère avoir fait le tour