En mi sitio web tengo un cuadro de texto donde el usuario puede ingresar lo que quiera y el texto se imprime en la página siguiente. Para ciertos casos, pueden escribir etiquetas HTML para dar formato a su mensaje, de modo que en la próxima página del sitio web, las cosas se puedan poner en negrita, en una lista, en cursiva, etc., pero no se permiten las etiquetas de script debido a las vulnerabilidades de XSS.
Ahora mismo permito que se refleje la etiqueta <a>
, por lo que puedo escribir en el cuadro de texto <a href=https://google.ca>sample_link</a>
y en la página siguiente si el usuario hace clic en el texto sample_link
, se redirigirá a google.ca .
He estado leyendo para saber si puede contraer un virus simplemente visitando un sitio web, y basado en esta respuesta aquí: ¿Puedes contraer virus simplemente visitando un sitio web en Chrome? y muchos otros, parece que puedes. Entonces, diga que el usuario no colocó google.ca y, en cambio, alguna URL malintencionada, si hace clic en ese enlace, su computadora puede infectarse o puede ocurrir algún otro ataque.
Lo que quiero saber es si esto es realmente un problema, ya que en este momento parece que la única manera de que esto sea un problema es si los mismos usuarios ingresan a este enlace malicioso y hacen clic en él. Entonces, ¿hay una manera para que un atacante capitalice el hecho de que esta etiqueta <a>
se está reflejando? Creo que una forma es que si lo que alguien ingresa en un cuadro de texto se refleja en una página que todos pueden ver, entonces otros usuarios pueden hacer clic en este enlace, pero eso significaría que los sitios como stackoverflow y otros foros serían "inseguros".
Sería genial si alguien pudiera arrojar algo de luz sobre esta situación. Gracias de antemano!
Editar:
Tengo un conjunto de etiquetas en lista blanca que pueden reflejarse. Aquí están:
"a", "b", "blockquote", "br", "cite", "code", "dd", "dl", "dt", "em", "i", "li", "ol", "p", "pre", "q", "small", "span", "strike", "strong", "sub", "sup", "u", "ul"