Как удалить теги <script> из ответа jQuery ajax?

-3

Я пытаюсь создать веб-читатель RSS. Каналы загружаются в фоновом режиме и сохраняются в базе данных. Я хочу загружать новости из этих каналов, используя jQuery и ajax, чтобы пользователи могли видеть все элементы без обновления веб-сайта.

Я беспокоюсь о безопасности этого решения, потому что кто-то может провозить вредоносный javascript в этих каналах. Что я могу сделать, чтобы предотвратить вредоносный код?

  • 1
    Не допуская его в базу данных в первую очередь.
  • 0
    Почему просто скриптовые теги? Как насчет onmouseover onclick , onmouseover и т. Д.? Что насчет javascript: схемы URI?
Показать ещё 3 комментария

2 ответа

1

Вы можете кодировать метасимволы HTML:

responseText = responseText.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');

Таким образом, если кто-то скажет, что их зовут "Боб предупреждает" ("haxd")

  • 0
    Если вы собираетесь преобразовать всю разметку в текст (не только элементы скрипта), просто вставьте ее как текстовый узел вместо использования innerHTML.
  • 0
    @quentin хорошо, это хороший момент, но мы мало знаем о том, что именно делается с ответом. Может случиться так, что материал из базы данных должен быть составлен в строку HTML, и в этом случае это будет иметь смысл.
1

скажем, у вас есть переменная с responseXML. Все, что вам нужно сделать, это следующее:

$(responseXML.querySelectorAll("script")).remove();
  • 0
    это может решить вопрос, но это не решит его проблему

Ещё вопросы

Сообщество Overcoder
Наверх
Меню