Защита кода JQuery от XSS очень трудна, потому что многие функции / методы jQUery являются приемниками XSS. См. этот вопрос в качестве примера.
При написании простого JavaScript вы должны быть осторожны, какие изменения вносятся в DOM и что вы передаете в «eval ()», «new Function ()», «setTimeout ()» и «setInterval ()».
При написании кода jQuery вы должны быть осторожны, передавая следующие функции раз, поскольку они могут вызывать eval () или вносить изменения в DOM:
- Jquery ()
- $ ()
- .after ()
- .append ()
- .appendTo ()
- .before ()
- .insertAfter ()
- .insertBefore ()
- .parseHTML ()
- .prepend ()
- .prependTo ()
- .replaceWith ()
- .wrap ()
- .wrapAll ()
- .wrapInner ()
Как только вы передаете строку, которую вы не контролируете ни одной из этих функций, возникает риск XSS.
Кроме того, этот список может быть неполным. Это только то, что я придумал, выполнив быстрый поиск по коду jQuery.