fonction de filtrage de données

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : fonction de filtrage de données

par Ryle » 04 juin 2007, 14:15

A chaque problème sa solution... il n'y a pas de solution "clé en main", dans la mesure où les résultats varieront selon les fonctions utilisées, il faut s'adapter au besoin :)
Au fait strip_tags n'est-il pas mieu que htmlspecialchars?
Ces deux fonctions n'ont pas le même effet. La première va supprimer toutes les balises html de la chaine, la seconde va convertir les caractères spéciaux en entités html, les balises seront donc transformées en < et > (on conserve donc l'information, et on peut ainsi afficher un code source html sans que celui-ci n'affecte la page)

le trim() n'est pas nécessaire, mais c'est plus propre de se débarasser des espaces superflux :)

addslashes() (ou les magic quotes) vont protéger les apostrophes et guillemets des chaines en les faisant précéder d'un antislashe, évitant ainsi que php (ou sql) ne les interprête comme une fin de chaine, et du coup, évitant également à un utilisateur de pouvoir injecter son propre code.
Pour utiliser la chaine dans une requête sql, il est plus intuitif d'utiliser mysql_real_escape_string()

par lux » 04 juin 2007, 13:45

Je relance la discussion ici. J'ai beaucoup lu au sujet des injections SQL ces derniers jours, mais pas vraiment trouvé de solution.
Pour l'instant j'utilise :
if(!get_magic_quotes_gpc())
    		{	
			$texte = addslashes($texte);
		}
(Les magicquotes sont sur OFF sur mon serveur.)

Est-ce que ça suffit ou je dois encore rajouter des controles tels que htmlentities(), strip_tags() et je sais pas quoi encore ? (Donc utiliser la fonction proposée ?)

par troudball » 16 nov. 2005, 09:57

Salut DarkBlue
et ma fonction "filtrage" est-elle bien écrite? (je suis débutants et j'ai encore quelques problèmes de syntaxe :D . D'autre part serait-il plus judicieux d'appliquer les fonctions addslashes, trim, htmlspecialchars dans un autre ordre. Au fait strip_tags n'est-il pas mieu que htmlspecialchars?
merci A+

Enfin, je m'interrogeais : est-il possible, une fois avoir créer une fonction comme je viens de le faire, de l'intégrer dans les fonctions de ma version de php, en gros de pas avoir à la définir à chaque fois que j'en ai besoin, n'y meme l'appeler à partir d'un fichier avec require() ?

Merci d'avance :wink:

Re: fonction de filtrage de données

par DarkBlue » 15 nov. 2005, 18:13

ormi les fonctions addslashes, trim et htmlspecialchars y a-t-il d'autres filtrages impératifs à faire sur les données à insérer dans une base de donnée?
trim() pour enlever les espaces inserés sans le faire expres en debut et fin de chaine

d'autre part part existe-t-il une fonction qui réunisse ces 3 (ou plus) types de filtrage? sinon puis-je la créer de la manière suivante :
function filtrage($x)
{
$x=addslashes(trim(htmlspecialchars($x))));
return $x;
} 
Pas a ma connaissance mais l'association des trois est tres bien , en se rappelant bien que les fonctions sont executées de la plus internes a la plus externes (ordre)

fonction de filtrage de données

par troudball » 15 nov. 2005, 16:55

bonjour à tous.
Je suis en quete de conseils :
ormi les fonctions addslashes, trim et htmlspecialchars y a-t-il d'autres filtrages impératifs à faire sur les données à insérer dans une base de donnée?
d'autre part part existe-t-il une fonction qui réunisse ces 3 (ou plus) types de filtrage? sinon puis-je la créer de la manière suivante :
function filtrage($x)
{
$x=addslashes(trim(htmlspecialchars($x))));
return $x;
} 
merci d'avance pour votre aide :D