По умолчанию Vue обеспечивает безопасность или защищает от XSS? - PullRequest
3 голосов
/ 20 марта 2019

Я пытаюсь понять, как защитить,

  • Угловая
  • Вю
  • Реагировать

против атак XSS. Когда я посещаю официальные документы Angular,

https://angular.io/guide/security

, там написано:

Чтобы систематически блокировать ошибки XSS, Angular рассматривает все значения как ненадежные по умолчанию. Когда значение вставляется в DOM из шаблон, через свойство, атрибут, стиль, привязку класса или интерполяция, Angular дезинфицирует и экранирует ненадежные значения.

а также:

Угловая очистка ненадежных значений для HTML, стилей и URL; очистка URL-адресов ресурсов невозможна, поскольку они содержат произвольные код. В режиме разработки Angular выводит предупреждение консоли, когда оно должен изменить значение во время санации.

и

Angular распознает значение как небезопасное и автоматически очищает его, который удаляет тег, но сохраняет безопасный контент, такой как элемент.

Когда я иду в официальные документы React,

https://reactjs.org/docs/introducing-jsx.html#jsx-prevents-injection-attacks

, это говорит следующее:

Встраивать пользовательский ввод в JSX безопасно:

и

По умолчанию React DOM экранирует любые значения, встроенные в JSX, до рендеринг их. Таким образом, это гарантирует, что вы никогда не сможете ничего сделать это явно не написано в вашем приложении. Все преобразуется в строку перед отображением. Это помогает предотвратить XSS (межсайтовый скриптинг) атаки.

Но для Vue я не могу найти в их документах ничего о защите XSS или что-нибудь, что они могли бы предоставить по умолчанию.

Мой вопрос: Предоставляет ли Vue по умолчанию какой-либо способ защиты от XSS-атак или мне нужно искать стороннее решение?

Когда я Google для этой темы, я получаю много постов в блогах и статей, ссылающихся, например, на этот проект для очистки моего HTML:

https://github.com/punkave/sanitize-html

1 Ответ

2 голосов
/ 20 марта 2019

Нет встроенного дезинфицирующего средства в vue.Согласно Evan You (Создатель Vue) комментарий к проблеме

встроенное дезинфицирующее средство добавит дополнительный вес пакета для редкого случая использования (когда большинство случаев использования v-HTML для доверенного контента);Также просто добавить sanitize-html, установив Vue.prototype. $ sanitize = sanitizeHTML, а затем выполнить v-html = "$ sanitize (html)".

Проверить это сообщение: https://github.com/vuejs/vue/issues/6333

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