A quoi sert cette fonction ? Sécurité ?

Invité
Invité n'ayant pas de compte PHPfrance

25 avr. 2008, 17:22

Bonjour,

Pour les modérateurs : désolé, je n'ai pas trouvé de titre explicite :oops:

Sinon, j'ai télécharger un script et j'ai cette fonction pour chaque valeur passer en POST :
<?php
function formulaires($valeur)
	{
	$valeur=trim(htmlspecialchars(addslashes($valeur)));
	return $valeur;
	}


?>
A quoi sert cette fonction, ca sert pour une sécurité ?

Merci :oops:

ViPHP
ViPHP | 2291 Messages

25 avr. 2008, 17:25

Bonjour,

Pour les modérateurs : désolé, je n'ai pas trouvé de titre explicite :oops:

Sinon, j'ai télécharger un script et j'ai cette fonction pour chaque valeur passer en POST :
<?php
function formulaires($valeur)
	{
	$valeur=trim(htmlspecialchars(addslashes($valeur)));
	return $valeur;
	}


?>
A quoi sert cette fonction, ca sert pour une sécurité ?

Merci :oops:
htmlspecialchars() est pratique pour éviter que des données fournies par les utilisateurs contiennent des balises HTML, comme pour un forum ou un chat

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

25 avr. 2008, 17:34

trim() va ôter les espaces devant et derrière les mots
addslashes va mettre un \ devant les caractères comme l'apostrophe, afin de ne pas avoir de problème en SQL.

Effectivement on dirait que c'est pour augmenter un petit peu la sécurité avant le traitement des données.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Invité
Invité n'ayant pas de compte PHPfrance

25 avr. 2008, 17:41

Merci de vos réponses, c'est sympa :wink:

ViPHP
AB
ViPHP | 5818 Messages

25 avr. 2008, 18:16

Attention cependant, car utiliser systématiquement addslashes pour traiter des variables issues de ton formulaire suppose que la configuration serveur de get_magic_quotes_gpc() est sur off, ce qui n'est pas encore toujours le cas. Pour que cela fonctionne quelque soit la config serveur tu peux faire

function formulaires($valeur)
    {
    $valeur= (get_magic_quotes_gpc())? $valeur : addslashes($valeur);
    $valeur=trim(htmlspecialchars($valeur));
    return $valeur;
    }

Ninibaba
Invité n'ayant pas de compte PHPfrance

16 mars 2013, 11:14

Bonjour,

je remonte ce topic de 5 ans :oops:

Mais comme ma question est un peu identique ...

J'ai ce code :

Code : Tout sélectionner

function formulaire($valeur) { $valeur= (get_magic_quotes_gpc())? $valeur : addslashes($valeur); $valeur=trim(htmlspecialchars($valeur)); return $valeur; }
Est-ce possible de faire ceci pour encore augmenter la sécurité contre les injections sql :

Code : Tout sélectionner

$pseudo=mysql_real_escape_string(formulaire($_POST['pseudo']));
?

Merci.

ViPHP
ViPHP | 1996 Messages

16 mars 2013, 23:23

Avec addslashes la fonction ajoute des \ pour protéger (on dit aussi echapper) les ', \, ... avec mysql_real_escape_string(), elle échappe aussi ie si tu fais :
$retour = "'";
echo addslashes(mysql_real_escape_string($retour));
tu auras normalement un texte comme cela => \\\'
Aussi ce sera redondant. Je dirais soit mysql_real_escape_string soit addslahes mais pas les deux en même temps.

Si tu vas ici http://lu.php.net/manual/fr/function.addslashes.php, tu liras qu'il faut mieux echapper les variables textes en fonction du contexte. Aussi mysql_real_escape_string() sera à privilégier en cas de protection vers une base mysql.
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr