Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
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 03/02/2011, 21h23   #1
Invité régulier
 
Inscription : janvier 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 21
Points : 5
Points : 5
Par défaut fonction anti injection

Bonsoir, j'aimerais votre avis sur cette fonction. Est-elle efficace contre les injections sql?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
 
function mysql_escape_input($value) {
 
	if ((!is_null($value)) && strlen($value) > 0) {
		$retval = utf8_decode($value);
		if (get_magic_quotes_gpc())
			$retval = stripslashes($retval);
		$retval = mysql_real_escape_string($retval);
		$retval = addcslashes($retval, '%_'); // escape jokers du LIKE
		$retval = utf8_encode($retval);
	}
	else
		$retval = $value;
	return $retval;
 
}
jounax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 21h30   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
A quoi servent les decodage UTF8 ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 21h46   #3
Invité régulier
 
Inscription : janvier 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 21
Points : 5
Points : 5
Ben justement je me le demande, c'est pour ça que je poste pour avoir vos lumières sur cette fonction.

Il est vrai que l'idée d'avoir une fonction pour sécuriser mes données est alléchante, surtout pour ne pas oublier d'en protéger une au passage.
jounax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 01h42   #4
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 559
Points : 1 559
Bah plus simplement tu n'as qu'à faire comme indique le manuel

mysql_real_escape_string avec mysql

mysqli_real_escape_string avec mysqli

et des requêtes préparées avec pdo

A noter qu'on peut aussi faire des requêtes préparées avec mysqli. Pour des données sensibles c'est peut-être un peu mieux que mysqli_real_escape_string

Concernant l'extension, le manuel ne conseille pas d'utiliser mysql pour les nouveaux projets car le développement a été arrêté. Tu devrais utiliser mysqli ou pdo.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 11h23   #5
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Avec utf8_decode, tout caractère qui n'est pas représentables en ISO-8859-1 est perdu. Alors que mysql_real_escape_string tient justement compte du jeu de caractères de la connexion (ainsi que du mode d'échappement - idem via une requête préparée, bien sûr).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 13h22   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
PDO fait aussi du non préparer (heureusement), c'est PDO::quote pour protéger les valeurs
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 17h16   #7
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 559
Points : 1 559
Citation:
Envoyé par stealth35 Voir le message
PDO fait aussi du non préparer (heureusement), c'est PDO::quote pour protéger les valeurs
Oui mais bon on parle du code le plus optimisé pour se protéger des injections, et depuis le temps qu'on nous serine que les requêtes préparées offrent une sécurité supérieure...

Cela dit t'as raison de préciser qu'on est pas obligé de faire des requêtes préparées avec pdo car c'est devenu presque systématique dans les codes qu'on trouve sur le net, et pourtant cela ne devrait être utilisé qu'à bon escient, puisque normalement c'est un chouia plus lent.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB 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 08h08.


 
 
 
 
Partenaires

Hébergement Web