Bonjour,
J'ai écrit un script pour livre d'or. Pour écrire, on remplit un form,
qui passe le texte (par POST) à un autre script,
qui met le tout dans un fichier (pour affichage en HTML).
Pour le cas ou le texte contiendrait du code malicieux,
j'ai écrit une fonction qui devrait l'empêcher de nuire,
On lui passe une $chaine et elle la retourne filtrée :
function filtre($chaine) {
// Enlever les caractères de contrôle sauf "\n" et "\r"
$purge = "";
for($x=0; $x < strlen($chaine); $x++) {
$asc = ord($chaine{$x});
if( $asc > 0x1F // ce n'est pas un caractère de contrôle
|| $asc == 0x0A // ou c'est un "\n"
|| $asc == 0x0D // ou bien un "\r"
) $purge .= chr($asc); // alors l'accepter
}
// inactiver les balises PHP, HTML et Javascript, par conversion de "<" et
">"
return(htmlspecialchars($purge, ENT_QUOTES));
}
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Bruno.L
Alain wrote:
Bonjour, J'ai écrit un script pour livre d'or. Pour écrire, on remplit un form, qui passe le texte (par POST) à un autre script, qui met le tout dans un fichier (pour affichage en HTML). Pour le cas ou le texte contiendrait du code malicieux, j'ai écrit une fonction qui devrait l'empêcher de nuire,
que penses-tu de la fonction strip-tags ? <http://www.php.net/manual/fr/function.strip-tags.php>
-- Bruno <http://bluesilk.be>
Alain wrote:
Bonjour,
J'ai écrit un script pour livre d'or. Pour écrire, on remplit un form,
qui passe le texte (par POST) à un autre script,
qui met le tout dans un fichier (pour affichage en HTML).
Pour le cas ou le texte contiendrait du code malicieux,
j'ai écrit une fonction qui devrait l'empêcher de nuire,
que penses-tu de la fonction strip-tags ?
<http://www.php.net/manual/fr/function.strip-tags.php>
Bonjour, J'ai écrit un script pour livre d'or. Pour écrire, on remplit un form, qui passe le texte (par POST) à un autre script, qui met le tout dans un fichier (pour affichage en HTML). Pour le cas ou le texte contiendrait du code malicieux, j'ai écrit une fonction qui devrait l'empêcher de nuire,
que penses-tu de la fonction strip-tags ? <http://www.php.net/manual/fr/function.strip-tags.php>
-- Bruno <http://bluesilk.be>
Marc
for($x=0; $x < strlen($chaine); $x++) { $asc = ord($chaine{$x}); if( $asc > 0x1F // ce n'est pas un caractère de contrôle || $asc == 0x0A // ou c'est un "n" || $asc == 0x0D // ou bien un "r" ) $purge .= chr($asc); // alors l'accepter }
tu dois pouvoir remplacer avec preg_replace ('/W/', ''); ca remplace sauf erreur de ma part tout ce qui n'est pas affichable par ''. Voir la doc pour etre plus sur.
for($x=0; $x < strlen($chaine); $x++) {
$asc = ord($chaine{$x});
if( $asc > 0x1F // ce n'est pas un caractère de contrôle
|| $asc == 0x0A // ou c'est un "n"
|| $asc == 0x0D // ou bien un "r"
) $purge .= chr($asc); // alors l'accepter
}
tu dois pouvoir remplacer avec preg_replace ('/W/', '');
ca remplace sauf erreur de ma part tout ce qui n'est pas affichable
par ''. Voir la doc pour etre plus sur.
for($x=0; $x < strlen($chaine); $x++) { $asc = ord($chaine{$x}); if( $asc > 0x1F // ce n'est pas un caractère de contrôle || $asc == 0x0A // ou c'est un "n" || $asc == 0x0D // ou bien un "r" ) $purge .= chr($asc); // alors l'accepter }
tu dois pouvoir remplacer avec preg_replace ('/W/', ''); ca remplace sauf erreur de ma part tout ce qui n'est pas affichable par ''. Voir la doc pour etre plus sur.
"Marc" <mquinton| a écrit dans le message de news: 42b55ced$0$620$
tu dois pouvoir remplacer avec preg_replace ('/W/', ''); ca remplace sauf erreur de ma part tout ce qui n'est pas affichable par ''. Voir la doc pour etre plus sur.
J'ai essayé: '/W/' enlève aissi la ponctuation et les espaces. Alors j'ai essayé: preg_replace('/[^n -ÿ]*/','',$chaine); N'enlève que les caractères de contrôle, sauf le newline et laisse tous les caractères imprimables. C'est plus concis que ma boucle !
Merci pour l'aide ! Alain
"Marc" <mquinton|-no-spam-please@gmail.com> a écrit dans le message de news:
42b55ced$0$620$636a15ce@news.free.fr...
tu dois pouvoir remplacer avec preg_replace ('/W/', '');
ca remplace sauf erreur de ma part tout ce qui n'est pas affichable
par ''. Voir la doc pour etre plus sur.
J'ai essayé: '/W/' enlève aissi la ponctuation et les espaces. Alors j'ai
essayé:
preg_replace('/[^n -ÿ]*/','',$chaine);
N'enlève que les caractères de contrôle, sauf le newline et laisse
tous les caractères imprimables. C'est plus concis que ma boucle !
"Marc" <mquinton| a écrit dans le message de news: 42b55ced$0$620$
tu dois pouvoir remplacer avec preg_replace ('/W/', ''); ca remplace sauf erreur de ma part tout ce qui n'est pas affichable par ''. Voir la doc pour etre plus sur.
J'ai essayé: '/W/' enlève aissi la ponctuation et les espaces. Alors j'ai essayé: preg_replace('/[^n -ÿ]*/','',$chaine); N'enlève que les caractères de contrôle, sauf le newline et laisse tous les caractères imprimables. C'est plus concis que ma boucle !
Merci pour l'aide ! Alain
Alain
"Bruno.L" a écrit dans le message de news: 42b54bfd$
que penses-tu de la fonction strip-tags ? <http://www.php.net/manual/fr/function.strip-tags.php>
Je souhaite laisser la liberté d'utiliser < et > comme simples caractères
dans un message, je les rends inoffensifs par htmlspecialchars().Je viens d'essayer strip_tags() : la fonction vire tout, vrais et faux tags. Trop pour mon cas.
Merci pour le renseignement Alain
"Bruno.L" <bruno@bluesilk.be.invalid> a écrit dans le message de news:
42b54bfd$1@news.stben.net...
que penses-tu de la fonction strip-tags ?
<http://www.php.net/manual/fr/function.strip-tags.php>
Je souhaite laisser la liberté d'utiliser < et > comme simples caractères
dans
un message, je les rends inoffensifs par htmlspecialchars().Je viens
d'essayer strip_tags() :
la fonction vire tout, vrais et faux tags. Trop pour mon cas.
"Bruno.L" a écrit dans le message de news: 42b54bfd$
que penses-tu de la fonction strip-tags ? <http://www.php.net/manual/fr/function.strip-tags.php>
Je souhaite laisser la liberté d'utiliser < et > comme simples caractères
dans un message, je les rends inoffensifs par htmlspecialchars().Je viens d'essayer strip_tags() : la fonction vire tout, vrais et faux tags. Trop pour mon cas.