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 19/06/2006, 15h21   #1
Membre du Club
 
Inscription : avril 2005
Messages : 300
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 300
Points : 59
Points : 59
Par défaut [Sécurité] Protection des données avant enregistrement dans Mysql

Bonjour,

j'ai un gros doute sur ma façon de faire pour l'enregistrement des données en toute sécurité dans une base de données mysql.

voila les traitements que j'applique:

- réception des données d'un formulaire

- si get_magic_quotes_gpc() est activé j'enlève tous les antislashes avec la fonction stripslashes()

- avec une première donnée (par exemple l'utilisateur & mdp) je vérifie dans ma base de données si celui existe de cette manière: "SELECT id FROM comptes WHERE utilisateur='".mysql_real_escape_string($user)."' AND mdp='".mysql_real_escape_string($mdp)."'"

- ensuite j'insère dans ma base de données mon texte toujours en utilisant mysql_real_escape_string().

Ceci est un exemple basique, j'aimerais savoir si tout cela est sécurisé, surtout concernant la suppression des anti-slashes et l'utilisation de la fonction mysql_real_escape_string().

D'avance, merci.
Thierry
Thierry8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2006, 08h37   #2
Membre du Club
 
Inscription : avril 2005
Messages : 300
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 300
Points : 59
Points : 59
Est-ce que quelqu'un peut m'aider ?
Thierry8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2006, 09h59   #3
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
je dirais que oui, mais je stockerais pas le mot de passe en clair, j'utiliserais plutot :
Code :
...SHA1(".mysql_real_escape_string($pass).")...
pour le mot de passe
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2006, 10h06   #4
Membre du Club
 
Inscription : avril 2005
Messages : 300
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 300
Points : 59
Points : 59
oui oui, a ce niveau il n'y a pas de soucis j'utilise bien SHA1, etc..

c'est surtout pour les anti-slashes ainsi que l'utilisation uniquement de mysql_real_escape_string()

merci
Thierry8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2006, 16h01   #5
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Regarde au niveau des expression régulière et tu limites la porté. Tu n'autorise que des intervales de caractères specifiquer [a-z,A-Z] etc... si jamais c'est pas conforme tu le jette. J'ai un de mes ancien prof qui a reussi passé les real_escape et addslashes mais comme sur un autre forum j'ai eu tres peut de gens qui m'ont cru je vais pas lancer cette polémique ici .

Personnellement je récupère d'un coté tous les utilisteurs et je fais la comparaison à l'exterieur du SQL ainsi il est impossible de faire une attaque sur la table.
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 00h18   #6
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
Moi je fais ça avant htmlspecialchars(mysql_real_escape_string()) et au besoin je filtre avec les expreg.
A moins de tomber sur un pro particulièrement violent et qui m'en veut à fond, normalement ça dois suffir emplement.

(oui je sais on doit utiliser htmlspecialchars en sortie et pas avant l'insertion nananinananere mais j'en démords pas ça économise des ressources comme ça).
__________________
C'est pas parce que j'ai tort que vous avez raison.
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 09h01   #7
Rédacteur
 
Avatar de wamania
 
Développeur Web
Inscription : juillet 2003
Messages : 676
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2003
Messages : 676
Points : 678
Points : 678
Citation:
(oui je sais on doit utiliser htmlspecialchars en sortie et pas avant l'insertion nananinananere mais j'en démords pas ça économise des ressources comme ça).
c'est pas non plus une règle absolue. Je dirais meme que pour un login, ça peut se justifier. Sur le login, je met aussi un strip_tags, car il est clair que si le login contient des balises, c'est une attaque.
__________________
Articles sur developpez.com
- Gestion des exceptions avec PHP5
- Chiffrement et hash en PHP contre l'attaque Man in the middle
- Aedituus - Espace membre sécurisé en PHP5

Lithium : ORM ActiveRecord PHP5 extrêmement léger
wamania est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 10h46   #8
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
ça peut se contourner mysql_real_escape_string() d'ailleurs ?
__________________
C'est pas parce que j'ai tort que vous avez raison.
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 12h22   #9
Membre du Club
 
Inscription : avril 2005
Messages : 300
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 300
Points : 59
Points : 59
c'est ce que je souhaitait savoir, même si je ne l'ai pas formulé ainsi, bonne question !

un avis pro serait le bien venu.
Thierry8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 13h59   #10
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
faite un tour sur le site de phpdirection il y a un article très complet sur ce sujet. En résumé, il y a pas de fonction idéal. Ce que je peux vous dire c'est qu'il y a rien de fiable pour un pro du crackage. Sauf séparer la requete du contrôle.
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 14h50   #11
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
Et bien justement, que signifie "séparer la requête du contrôle ?"
__________________
C'est pas parce que j'ai tort que vous avez raison.
psychoBob 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 04h01.


 
 
 
 
Partenaires

Hébergement Web