begin process at 2010 03 21 13:36:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Caractères d'échapements, Quel méthode ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Caractères d'échapements, Quel méthode ?

mercredi 2 novembre 2005 à 08:37:25 | Caractères d'échapements, Quel méthode ?

djangoboy

Bonjour a tous,

Il y a 3 jours précisement je me suis fais tapé sur les doigts par monoceros01 et anthomicro car j'ai employé les fonction suivant pour traiter mes formulaires.(Mais heuseusement qu'ils l'ont fait !)
J'utilisé :

$pseudo= $_POST['pseudo'];
$
pseudo= addslashes($pseudo);
$
pseudo= htmlentities($pseudo);
$
pseudo= nl2br($pseudo);
$
pseudo= ucfirst($pseudo);

que ca soit pour les input text ou les text array.

J'aimerais donc savoir "les normes", qu'est ce que je dois mettre pour être sur que les caractère déchapemment soit mis correctement, pour pouvoir enregistrer ces informations dans ma base de donnée, pour ensuite les publier sur mon site sous formes de news.

Donc si quelqu'un aurait la gentillesse de m'aider, car j'ai réfléchi aux lignes de code apparaissant plus haut, c'est vrai que certain serveur sont configuré autrement.

Merci d'avance de votre aide.


.: Dj.Ango :.

mercredi 2 novembre 2005 à 08:47:03 | Re : Caractères d'échapements, Quel méthode ?

djangoboy

Mise a jour !

$pseudo= ucfirst($pseudo); est a enlevé, j'ai oublié de le faire, c'était juste pour la présentation.
Voila je pense que c'set claire.
Tchao




PS : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

.: Dj.Ango :.
mercredi 2 novembre 2005 à 09:00:13 | Re : Caractères d'échapements, Quel méthode ?

malalam

Administrateur CodeS-SourceS
Hello,

- les quotes... : le truc est de savoir comment ton serveur est configuré. Gère t il tout seul les quotes avec les magic quotes ? Mais ne se baser que sur ça pose un problème de portabilité (et si tu changes de serveur, et que la gestion des quotes change...tu ne voudrais pas devoir revoir tout ton code ;-)). Le mieux est donc d'utiliser un script comme celui d'Antho : http://www.phpcs.com/code.aspx?id=29887
Ps : ceci se gère AVANT tout enregistrement dans une base, passage de variable par get ou post, etc...
PHP possède une fonction propre à mysql pour gérer ça : mysql_real_escape_string () que je préconise d'utiliser dans ces cas-là. Prendre cette précaution va déjà bloquer la plupart des éventuelles attaques injections sql.
A lire :
[ Lien ]

- htmlentities : les entités html peuvent être pénibles pour la mise en page d'un site. Un exemple typique : forum, livre d'or...si le mec s'amuse à mettre un </div> (ou un </table> vu que généralement les gens font -malheureusement- de la mise en page par tableaux...), ça peut mettre à mal un design concocté avec amour. Il y a plus ennuyeux : le javascript. Je ne vais pas donner ici un exemple de petit script nuisible, mais bon...c'est pas très dur à trouver ;-) . C'est pour ça que généralement, sur toute entrée utilisateur, on utilise htmlentities (ou html_special_chars quand on gère bien l'encodage de ses pages).
A lire : [ Lien ]

- nl2br : ça, c'est juste une question de mise en page. Ca remplace les retours chariots "systèmes" par de bons vieux <br />. Ca permet de garder la "mise en page" (les retours chariots uniquement en fait) de l'utilisateur lors d'une saisie dans un textarea par exemple. Aucun soucis de sécurité ici.

- ucfirst : heu bah ça c'est cosmétique, encore une fois. ca met des majuscules...il y a deux fonctions pour ça. Aucun problème de sécurité là-dedans.

Globalement, à lire : [ Lien ]

Pour la pratique de recopier la valeur d'une globale (un $_POST par exemple) dans une tierce variable...si tout est bien géré, je n'en vois pas l'utilité.

Dans tous les cas, ce qui est important : ne jamais faire confiance à l'utilisateur. Toujours bien vérifier que l'on reçoit ce que l'on attend, et pas autre chose! Toujours vérifier l'existence des variables (attendues) lors d'une saisie utilisateur (avec des isset () : [ Lien ]). Toujours vérifier leur contenu (tu attends un entier dans une saisie ? Vérifie que ça en soit un! Le cas échéant, force la conversion de la saisie). Et toujours gérer les cas d'erreur...si tu n'as pas la valeur voulue, déclenche une erreur toi-même, n'attend pas que php le fasse et affiche son vilain message aux yeux de tous. Ca peut, dans certains cas, aiguiller des gens mal intentionnés. Et puis ça ne fait pas pro ;-) Travaille toujours en error_reporting à E_ALL, c'est important pour sécuriser au mieux un site : [ Lien ].

Il y aurait des tas de choses à dire...je laisse le soin à d'autres de faire des ajouts.
mercredi 2 novembre 2005 à 11:07:45 | Re : Caractères d'échapements, Quel méthode ?

FhX

"PHP possède une fonction propre à mysql pour gérer ça : mysql_real_escape_string () que je préconise d'utiliser dans ces cas-là. Prendre cette précaution va déjà bloquer la totalité des attaques type injections sql."

"Dans tous les cas, ce qui est important : être parano à 150% !."
Au moins ;)
mercredi 9 novembre 2005 à 00:04:44 | Re : Caractères d'échapements, Quel méthode ?

psychosic

moi j'utilise la fonction base64_encode/decode mais je veux bien un retour de performance sur vos methodes.
mercredi 9 novembre 2005 à 09:08:42 | Re : Caractères d'échapements, Quel méthode ?

malalam

Administrateur CodeS-SourceS
Le problème de base64 est qu'elle allonge sérieusement les chaînes, donc pour traiter ces cas-là, autant utiliser les fonctions dédiées, à mon sens.
J'utilise base64 essentiellement quand je veux trimballer dans une variable, ou dans un champ caché, un objet/tableau sérialisé. Ca vire les caractères à la con ;-)

dimanche 13 novembre 2005 à 17:38:20 | Re : Caractères d'échapements, Quel méthode ?

psychosic

sinon moi j'ai fais une fonciton qui test si c'est un texte:

function pbAccent($mot)
{
    $mot=str_replace("à", "a", $mot );
    $mot=str_replace("â", "a", $mot );
    $mot=str_replace("ä", "a", $mot );
    $mot=str_replace("é", "e", $mot );
    $mot=str_replace("è", "e", $mot );
    $mot=str_replace("ê", "e", $mot );
    $mot=str_replace("ë", "e", $mot );
    $mot=str_replace("î", "i", $mot );
    $mot=str_replace("ï", "i", $mot );
    $mot=str_replace("ô", "o", $mot );
    $mot=str_replace("ö", "o", $mot );
    $mot=str_replace("ù", "u", $mot );
    $mot=str_replace("ü", "u", $mot );
    $mot=str_replace("û", "u", $mot );
return $mot;
}

function IsText($txt)
{
    $txt=strtolower($txt);
    $txt=pbAccent($txt);
    $test=ereg("a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|t|s|u|v|w|x|y|z|'|\"",$txt,$items);
return($test);
}

function formatTextToSQL($text)
{
    $text = str_replace(chr(10), "<br />", $text ); //10
    $text = str_replace(chr(13), "", $text ); //13
    $text = addslashes($text);
    //echo($text);
return $text;
}

function formatTextToHTML($txt)
{
    $txt = str_replace("<br />",chr(10),$txt);
    $txt = str_replace("<br>",chr(10),$txt);
    $txt = stripslashes($txt);

return $txt;
}

Donc dans mes classes avant de faire la requete je fais ca

pour un Insert
if(IsText($maVariableATester)) $maVariableATester=formatTextToSQL($maVariableATester);

pour un Select
if(IsText($maVariableATester)) $maVariableATester=formatTextToHTML($maVariableATester);

dimanche 13 novembre 2005 à 21:13:18 | Re : Caractères d'échapements, Quel méthode ?

coockiesch

Salut!
a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|t|s|u|v|w|x|y|z|
a-z
:D

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
lundi 14 novembre 2005 à 12:26:04 | Re : Caractères d'échapements, Quel méthode ?


Cette discussion est classée dans : text, pseudo, caractères, méthode, échapements


Répondre à ce message

Sujets en rapport avec ce message

cookie de session - besoin de méthode [ par satellite34 ] bonjour,voila, j'ai un soucis, je doit creer et utiliser un cookie de session sur mon site, j'ai regardé des sources sur phpCS mais impossible d'en fa Cherche méthode simple de comparaison pour pseudo [ par matthieu3556 ] Bonjour à tous. Je dois faire une comparaison entre plu mysql_result [ par NCoding ] Bonsoir à tous.Fraichement débarqué sur votre site, j'arrive déjà avec une première question ! ^^On m'a conseillé d'utiliser dans le cadre de la progr Résultats d'une requete dans un input text [ par eulmaraud ] Bien le bonjour tout le monde question de debutant et je ne sais pas comment formuler ma requete dans google... je voudrais remplir une input text a Validation par email [ par bernhardjo ] Bonjour, Je cherche a faire une validation par email pour les utilisateurs puissent devenir membre. J'ai passablement de petit problème, notamment a aide sur fonction [ par titi2b ] bonhour je ne comprend pas pourquoi la fonction ne fonctionne pas Parse error: syntax error, unexpected T_IF, expecting '{' ligne 3function pseudo()i [MySQLi] Caracteres speciaux ?!? [ par zeguizmo ] Bonjour à tous !J'ai un petit problème avec une requête là, ca fait deux heures que je suis dessus, et pas moyen de voir ce qui merdouille :)Je fais d probleme avec session [ par dipin ] Bonjouralors voila ce petit code pour créer une variable session, en local aucun problème mais sur internet (free.fr) il a une erreur :voici le code : fonction qui ne marche pas ! [ par nicomilville ] Salut,J'ai créé une fonction, il y a une partie qui fonctionne mais il y en a une autre qui ne marche pas !ma fonction :function aff_connectes() { $sq détecter fin de ligne dans une chaine de caractères [ par zut69 ] Bonjour,J'ai une chaine de caractères sous cette forme là:"058493748903048493056847264982736491..."C'est toujours x chiffres par ligne ou x est un mul


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales