mysql_real_escape_string used when insert into database
htmlentities() used when outputting data into webpage
htmlspecialchars() used when??
strip_tags() used when ??
addslashes() used when ??
htmlspecialchars() utilisé quand??
htmlspecialchars est à peu près le même que htmlentities. la différence: les encodages de caractères.
la fois d'encoder les caractères de contrôle comme <
, >
, &
et ainsi de suite utilisé pour les balises d'ouverture etc. htmlentities aussi encoder les caractères d'autres langues comme des trémas, euro-symboles et ces. si vos sites web sont en utf, utiliser htmlspecialchars(), sinon utiliser htmlentities().
strip_tags() utilisé quand ??
htmlspecialchars / entités encoder les caractères spéciaux, de sorte qu'ils sont affichés, mais pas interprété. strip_tags SUPPRIME.
dans la pratique, cela dépend de ce que vous devez faire.
un exemple ... vous avez codé un forum, et de donner aux utilisateurs un champ de texte de sorte qu'ils peuvent poster des trucs. les logiciels malveillants juste essayer
pictures of <a href="javascript:void(window.setInterval(function () {window.open('http://evil.com');}, 1000));">kittens</a> here
si vous ne faites rien, le lien sera affiché d et une victime qui clique sur le lien obtient beaucoup de pop-ups.
si vous htmlentitiy/htmlspecialchar votre sortie, le texte sera là comme-est. si vous strip_tag, il supprime simplement les balises et l'affiche:
pictures of kittens here
parfois, vous voudrez peut-être un mélange, laisser certaines balises, comme <b>
(strip_tags peut laisser certaines balises là). c'est trop dangereux, afin de mieux utiliser certaines complète de la bibliothèque contre xss
addslashes
pour citer le manuel php:
Retourne une chaîne de caractères avec des barres obliques inverses avant de caractères qui doivent être indiqués dans les requêtes de base de données etc. Ces caractères sont le guillemet simple ('), guillemet double ( " ), (barre oblique inverse) et NUL (l'octet NUL).
Un exemple d'utilisation de addslashes (), c'est quand vous êtes à la saisie des données dans une base de données. Par exemple, pour insérer le nom de O'reilly dans une base de données, vous aurez besoin d'y échapper. C'est très recommeneded à l'utilisation de SGBD spécifique de la fonction d'échappement (par exemple mysqli_real_escape_string() de MySQL ou pg_escape_string() pour PostgreSQL), mais si le SGBD que vous utilisez n'ont pas une fonction d'échappement et le SGBD utilise \ pour échapper les caractères spéciaux, vous pouvez utiliser cette fonction.