Précédent   Forum des professionnels en informatique > PHP > Scripts
Scripts Forum d'entraide sur les scripts PHP téléchargés. Les meilleurs scripts PHP, la FAQ scripts PHP, toutes les FAQ PHP
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 15/05/2007, 16h04   #1
Invité de passage
 
Inscription : mai 2005
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 3
Points : 1
Points : 1
Par défaut Script pour protéger les formulaires PHP de l'injection SQL

Bonjour à tous,
J'ai développé un script permettant de transformer les variables issues de formulaires afin d'éviter l'injection SQL.
Le voici :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
/***************************************************************
Cette fonction permet d'exclure de la variable tous les mots-clés dangereux.
Elle retourne la variable en minuscule après avoir retiré les mots clés dangereux, 
les balises et après avoir ajouté des slashs à chaque quote ou guillemet.
	****************************************************************/
	function protege($var){
		//Mots à exclure de la variable
		$tab_exc=array('SELECT','FROM','WHERE','UNION','INSERT','INTO','DROP','ORDER','OR','#','/*','*/','%','CHAR(','CONV(','DATABASE()','USER()');
		//Exclue les mots du tableaux de la variable
		for($i=0;$i<17;$i++){
			$var=str_replace($tab_exc[$i],'',strtoupper($var));
		}
		//Ajoute des slash derrière les quotes
		$var=addslashes($var);
		//Supprime les balises
		$var=strip_tags($var);
 
		return strtolower($var);
	}
?>
Dites moi ce que vous en pensez, peut-elle être efficace.
Quelles sont ses limites...

Merci.
thebay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 16h06   #2
Membre expérimenté
 
Avatar de dj-julio
 
Inscription : décembre 2005
Messages : 742
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : décembre 2005
Messages : 742
Points : 576
Points : 576
Salut,

Tu t'es fatigué pour pas grand chose

regarde du côté de mysql_real_escape_string() (si tu utilises mysql) normalement chaque SGBD à ses propres fonctions de protection

il ne faut pas tout réinventer quand tout existe déjà
__________________
Mon Site/Cv.
dj-julio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 16h11   #3
Invité de passage
 
Inscription : mai 2005
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 3
Points : 1
Points : 1
Merci de ta réponse rapide...
J'ai bien vu cette fonction (ndlr:mysql_real_escape_string()) mais je n'ai pas compris comment elle fonctionne exactement.
Que remplace t-elle, comment agit-elle sur les variables?
Si tu peux me fournir quelques rapides explications ou me renvoyer vers une page qui l'explique correctement.

Merci.
thebay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 16h16   #4
Membre expérimenté
 
Avatar de dj-julio
 
Inscription : décembre 2005
Messages : 742
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : décembre 2005
Messages : 742
Points : 576
Points : 576
ICI
__________________
Mon Site/Cv.
dj-julio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 16h23   #5
Invité de passage
 
Inscription : mai 2005
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 3
Points : 1
Points : 1
Je venais de trouver également les infos dont j'avais besoin.
Merci en tout cas pour ton aide, je vais tester tout ça.

Si tu as des recommandations à me faire quant à la sécurisation des formulaires sous PHP, je suis avide de connaissances...

Merci encore

Bonne journée
thebay est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h18.


 
 
 
 
Partenaires

Hébergement Web