8792 sujets

Développement web côté serveur, CMS

Bonjour

J'ai une page appelante - dont le DTC est en xhtml scrict et en codage ut-8 - qui est sensée m'afficher les champs de saisie à la validation (+ récup des champs en cas d'erreur de saisie) et transmettre le tout à un formulaire et un petit post avec un mail() php.
Sur mes boutons de formulaire j'ai des choses de ce genre :
<?php
header('Content-Type: text/html; charset=UTF-8');

<form ... [...bla bla bla...]>
	<label for="message" title="Veuillez saisir votre message" class="labelimportant">Message</label>
		<input type="text" name="message" id="message" title="Veuillez saisir votre message" tabindex="1" value="<?php if (!empty($_POST["nom"])) { echo trim(htmlentities($message)); } ?>" />
[...bla bla bla...]
</form>

Il suffit de supprimer le htmlentities pour afficher le champs en ut-8.

Question : y a-t-il un risque de faille et de transmission de valeur html, php ou autre pour l'exécution d'un script à distance ? Ou y aurait-il une autre façon de faire pour récupérer le texte intégralement, sans l'apparition d'entité en place de signes unicode par exemple ?

Merci de votre avis éclairé.
Modifié par globy (01 Dec 2005 - 23:33)
Je me suis édité, j'avais pas mis le bon code. C'était celui de mon test Smiley biggol
Et là ?
Merci de ton aide.
Modifié par globy (29 Nov 2005 - 18:48)
pour afficher les données et rester conforme à un document XML (et donc XHTML Smiley cligne ) il suffit d'utiliser la fonction htmlspecialchars (http://php.net/htmlspecialchars)
cette fonction modifie les caractères < > " et & et ne touche pas aux autres caractères
Merci de cette précision Mathieu. Donc j'avais tout de même raison de m'inquiéter d'un hack éventuel ?
Au fait ! Bienvenue Smiley smile
la focntion "htmlentities" modifie les caractères concerné par la fonction "htmlspecialchars" en plus des entités donc en utilisant cette fonction tu était déjà protéger de l'injection de code html par exemple
On était bien d'accord. Sujet [Résolu], je fais les modifications demain. Merci bien à vous deux.