Comments 29
PS: К сожалению, судя по количеству комментариев, сообщество не очень интересуется этой темой :(
Использовать подходы которые исключают вставку "грязных" данных напрямую в разметку.
Например, шаблонизатор Razor (он же ASP.NET WebPages) полностью исключает XSS если не использовать инлайн-скрипты и конструкцию Html.Raw
.
Клиентские фреймворки, которые работают с DOM а не с HTML — тоже безопасны (если, опять-таки, не использовать html-биндинги и инлайн-скрипты).
best-practice — не доверять ничему что приходит от пользователя. Куки, заголовки, данные, файлы. Валидировать и санитизить серверной стороной!!! (Валидация на клиенте — только декоративная, чтобы быстро юзеру подсказать что не так, потому что я могу скриптик ручками поправить и отправить в ваше апи любую каку минуя валидации)
Так вот, за свою шутку Сэми получил 3 года.
Английская википедия говорит
but paying a fine of $20,000 USD, serving three years of probation, working 720 hours of community service
Не находите, что "получил 3 года" — это совсем не то же самое, что "три года условно и 720 часов общественных работ"?
Даже реально заключенные, а не условно — имеют право голосовать. Они не могут сами быть избранными.
Ну, думаю вы знаете, как голосуют в тюрьмах и армии.
В отличие от остальных граждан, которым лениво свою жопу от дивана оторвать в день голосования — голосуют реально, да.
Vue.js никак нам в этом не помогает. Это должен делать сам разработчик. И вот сейчас, если вы пишете на Vue.js и впервые об этом слышите — у вас уязвимое приложение. Поздравляю.
То v-html применяется специально для вывода сырого html и подразумевается, что это не безопасно давать контроль пользователю над выводимым таким образом значением, вообще v-html используется в крайне редких случаях. Для вывода контента нужно использовать "{{ }}"
ru.vuejs.org/v2/guide/syntax.html#%D0%A1%D1%8B%D1%80%D0%BE%D0%B9-HTML
Dynamically rendering arbitrary HTML on your website can be very dangerous because it can easily lead to XSS vulnerabilities. Only use HTML interpolation on trusted content and never on user-provided content.
Предлагаю написать новый js-Фреймворк с защитой от xss!
# npx nsp check
(+) 1 vulnerability found
…
Name │ hoek
…
Path │ project@1.0.0 > nsp@3.2.1 > wreck@12.5.1 > hoek@4.2.0
За собой следить не надо :)
Уязвимости вашего приложения