jQuery $ .get código HTML y XSS

0

Código JS

var id = $(this).data("id");
$.get("/api.php",{id:encodeURIComponent(id)}).done(function(data){
    $('<div>'+data+'</div>').appendTo('.parent');
});

api.php:

echo json_encode('<h1>Hi username!<h1><p>text</p>',JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP);

El contenido HTML devuelto no es de un usuario. Ya está escrito en api.php

¿Es esta consulta XSS vulnerable? Escuché que html() es malvado. ¿Qué hay de appendTo() ?

    
pregunta Swing 05.04.2018 - 12:03
fuente

1 respuesta

1

Si no es controlado por el usuario, entonces no es vulnerable a XSS.

Alguien en algún lugar debe poder inyectar el script en data para hacerlo vulnerable.

appendTo no es un sumidero en sí mismo, sin embargo, si agrega texto libre al DOM en este caso, podría hacer que la página sea vulnerable si data contiene información del usuario (lea el usuario La entrada debe ser cualquier cosa fuera del dominio de seguridad de la aplicación en sí).

    
respondido por el SilverlightFox 05.04.2018 - 12:22
fuente

Lea otras preguntas en las etiquetas