Mi aplicación web toma configuraciones del usuario y las guarda en un archivo XML (no se hizo para detener XSS). La entrada está codificada en XML para que "
, &
... y dichos caracteres no rompan la estructura XML.
Entonces, ¿es necesario tener otra capa de filtro XSS o esta forma de guardar los datos detiene automáticamente los ataques XSS?
Soy consciente del hecho de que este ataque depende de muchos otros factores, como la representación de la página web, pero permite limitar la discusión al siguiente fragmento de código, sin embargo, desde la forma en que voy a imprimir los datos muy De vez en cuando eres libre de modificar
echo "<h1> Hello ".$name."</h1>"
para mostrarme formas incorrectas de imprimir datos.
$data = $_POST['malicious_user_supplied_data'];
$xml_encoded_data = xml_encode($data);
write_to_xml_as($xml_encoded_data,"config.xml");
------ config.xml --------
<user>
<name><script>alert("BigBang")</script></name>
</user>
--------------------------
$name = get_name("config.xml") // would return <script>alert("BigBang")</script>
echo "<h1> Hello ".$name."</h1>" // which on the browser would print <script>alert("BigBang")</script>
Por favor, muéstrame algunos ejemplos de trabajo donde el filtro XML anterior se puede romper, si hay alguno.