|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : janvier 2010 Messages : 317 ![]() |
Bonjour.
Je viens de faire la découverte de ceci : "mysql_fetch_object" et je viens tout juste de créer un script qui modifie des données dans la base de données. Je voudrais savoir si mon script est biens sécurisé. J'apprécierais de l'aide afin de savoir si j'ai pas oublié un élément pour sécuriser mon code. Une note en passant, je test avec un addon de firefox pour les injections sql et les xss. Ça dit aucune faille mais les données dans la base changent quand même sur tous les ID. Code :
Au lieux de créer deux fichier pour modifier les données, j'ai fait pour que ça soit dans le même fichier : La modification et le résultat. Normalement, j'aurais le formulaire dans un fichier et le traitement dans le deuxième. Mais je trouvais que ça irait mieux en un seul fichier. |
||
|
|
00
|
|
|
#2 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
L'extension mysql n'est plus supportée par PHP, je te recommande de passer dès que possible à mysqli ou PDO (qui supportent également le fetch object).
Ton code m'a l'air bon à deux détails près: - l'usage de mysql_real_escape_string peut être remplacé avantageusement par des requêtes préparées avec des placeholder. Voir PDOStatement pour un exemple. - Tu ne contrôle à aucun moment l'exécution de tes requêtes, si l'une d'elle échoue, ça va lancer des warnings et potentiellement crasher ce qui suit. Je te recommande de wrapper toutes tes exécutions de requête d'une manière générale dans des if pour vérifier le status. Citation:
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
|
00
|
|
|
#3 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Dans ta requête ligne 23, la valeur n'est pas protégée.
De plus quand tu mets une valeur numérique dans une requêtes, utilise intval() et non mysql_real_escape_string() et ne mets pas de guillemets. |
|
|
00
|
|
|
#4 | |||
|
Membre du Club
![]() Inscription : janvier 2010 Messages : 317 ![]() |
Je regarde pour mysqli puisque PDO n'est pas accessible pour moi par mon serveur et non plus sur mon serveur local de test.
Je regarde en détails ce que vous m'avez écrit. Si je pouvais trouver un tuto sur mysqli pour débuter, ça me serait intéressant. J'ai revu mon code pour le rendre plus sécure. Mais, je fais aussi une version mysqli version mysql: Code :
Pour les xss, j'interdit les balises html <> avec preg_remplace qui me semble efficace. htmlentities et l'autre, me pose un probleme. Merci Benjamin pour l'aide accordé! Merci sabotage, j'ai pris note et corrigé mon code. Citation:
|
|||
|
|
00
|
|
|
#5 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
Citation:
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
|
|
#6 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Par "wrapper" (embalage en anglais) je voulais dire mets tes exécutions de requêtes dans des if pour contrôller leur exécution.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : janvier 2010 Messages : 317 ![]() |
Merci. J'utilise maintenant Mysqli, je délaisse peu à peu Mysql et le PDO, je ne peux pas l'utiliser.
Ça prends du temps pour assimiler. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com