Защитите код JQuery от XSS - PullRequest
1 голос
/ 25 июня 2010

Я работаю над формой HTML, которая отправляет данные в URL. Я также использую Jquery для получения параметров строки запроса и добавления их к данным, которые я публикую в URL. Есть ли способ защиты от XSS-атак? Какие-либо плагины для кодирования HTML или встроенные функции?

Ответы [ 3 ]

9 голосов
/ 26 августа 2011

Ответ jigfox не на 100% прав.Иногда вы можете использовать данные из URL непосредственно в JavaScript.Даже если вы очищаете сервер ссылок, это не означает, что другой веб-сайт не может ссылаться на ваш сайт с помощью вредоносного URL.

Я использую этот URL для проверки своих сайтов: https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet

4 голосов
/ 11 марта 2014

Защита кода 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.

1 голос
/ 25 июня 2010

Вы не можете защитить jQuery от XSS. XSS уязвимость возникает в вашем серверном программном обеспечении. Взгляните на Exploit_scenarios , чтобы лучше понять, как работает XSS.

Веб-сайт, который выводит данные, сгенерированные пользователем, имеет возможную уязвимость XSS, если выводит сгенерированный пользователем контент без фильтрации, потому что тогда пользователь может создать тег <script/> с вредоносным кодом. Но вам нужно отфильтровать это на сервере перед отправкой клиенту (браузеру).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...