Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
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 31/07/2007, 14h26   #1
Nouveau Membre du Club
 
Avatar de Ministar
 
Inscription : septembre 2006
Messages : 143
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : septembre 2006
Messages : 143
Points : 25
Points : 25
Par défaut [Sécurité] Quelle procédure suivre pour une protection parfaite ?

Bonjour!

Je fait un site web qui a rapport avec une base de donnée.

Le fait est (et c'est logique!) que j'utilise des champs de formulaire pour intéragir avec ma base de données.

Je protège déjà les informations saisies avec la fonction addslashes() pour l'enregistrement.

Lors de la lecture j'utilise htmlententities().

Je suppose qu'il y a encore des failles, j'aimerais les comblés, comment faire?

Merci!
Ministar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 14h29   #2
Membre Expert
 
Avatar de jbrasselet
 
Homme Julien Brasselet
Ingénieur développement logiciels
Inscription : mars 2006
Messages : 952
Détails du profil
Informations personnelles :
Nom : Homme Julien Brasselet
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2006
Messages : 952
Points : 1 382
Points : 1 382
Envoyer un message via MSN à jbrasselet
Tu peux essayer de virer les points-virgules et les pourcentages.
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.
jbrasselet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 16h33   #3
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605

Heeuuu déjà plutôt que d'utiliser addslashes tu peux utiliser mysql_real_escape_string voir même mieux, tu utilise cette fonction :
Code :
1
2
3
4
5
6
7
8
function quote_smart($value)
{
   // Stripslashes
   if (get_magic_quotes_gpc()) $value = stripslashes($value);
   // Protection si ce n'est pas un entier
   if (!is_numeric($value))$value = "'" . mysql_real_escape_string($value) . "'";
   return $value;
}
Ensuite, et désolé de te décourager, mais tu n'auras jamais une protection parfaite
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 16h53   #4
Membre actif
 
Homme
Développeur Web
Inscription : juillet 2007
Messages : 194
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2007
Messages : 194
Points : 189
Points : 189
Ah moins d'avoir des ennemies ou de marquer en gros sur le site Hack Me, les chances de se faire hacker sont faible. Tes données sont vraiment si sensible que ça??
metfan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 17h00   #5
Nouveau Membre du Club
 
Avatar de Ministar
 
Inscription : septembre 2006
Messages : 143
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : septembre 2006
Messages : 143
Points : 25
Points : 25
Je ne vois pas bien ce que fait ta fonction de plus que mysql_real_escape_string ?!

Sinon elle est pas trop mal mais il faut vérifier les magic quote avant de l'utiliser?

Le mieux c'est de l'utiliser sur TOUTES les données provenant de formulaires si j'ai bien compris!

Ya til pas d'autres protection a fournir?
Des scripts php ne peuvent pas être utilisés pour attaquer mon site web?

La protection parfaite ca ne sera surement pas possible mais il faut bien essayer de s'en approcher!

Edit : Mes données ne sont pas si sensibles que ca mais le jour ou je programmerais pour une entreprise elles le seront!
Ministar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 17h04   #6
Membre régulier
 
Étudiant
Inscription : novembre 2005
Messages : 85
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2005
Messages : 85
Points : 81
Points : 81
pour ce qui est de requête sql tu peux toujours les préparer, c'est à dire faire des pré requète ce qui empêche les hack par injection sql

tu peux aussi tester le type des donnée envoyée et voir si cela ne comporte pas de caractères/formes inattendues
Grummfy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 17h09   #7
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605
Citation:
Envoyé par Ministar
Je ne vois pas bien ce que fait ta fonction de plus que mysql_real_escape_string ?!

Sinon elle est pas trop mal mais il faut vérifier les magic quote avant de l'utiliser?
bè elle détecte l'activation du mgic_quotes_gpc afin de supprimer les slash qu'il te rajouterait puis si la valeur que tu as passée en paramètre n'est pas un entier (donc une chaine qui faut encapsuler dans des simples quotes) alors il appelle mysql_real_escape_string().

@ Grummfy : L'utilisation de la fonction mysql_real_escape_string() sur chaque variable évite les injections SQL
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 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 08h22.


 
 
 
 
Partenaires

Hébergement Web