Métodos jQuery seguros vs não seguros

Todos nós sabemos que o XSS é ruim e todos nós usamos jQuery, infelizmente sua API doc não faz um bom trabalho explicando quais métodos jQuery são seguros para usar para entrada sem escape, e quais não são.

Seguro

  • .text()
  • .attr() // ainda precisa ter cuidado quando usado em um href
  • .prop()
  • .val()

Inseguro

  • $("html code")
  • .html()
  • .append*()
  • .insert*()
  • .prepend*()
  • .wrap*()
  • .before()
  • .after()