ASP.NET Защита редактируемого IFrame от XSS - PullRequest
0 голосов
/ 20 января 2012

Как часть создаваемого мной веб-приложения, существует iframe, который позволяет вошедшему в систему пользователю редактировать некоторый контент, который будет отображаться только в его собственном вошедшем в систему профиле или на общедоступной странице без входа в систему.users.

Поскольку это означает, что контент будет доступен для просмотра только пользователю, который его ввел, или пользователю на общедоступном сайте, означает ли это, что риск XSS избыточен?Если они могут только вставить javascript на свою страницу, то они могут получить доступ только к своим собственным куки, да?И если мы затем отобразим этот контент на общедоступной странице, которая не имеет понятия о зарегистрированном пользователе (на другом поддомене), тогда нет файлов cookie для доступа, верно?

Или это мое упрощенное представление об опасностяхXSS неверный?

Энтони

Ответы [ 2 ]

1 голос
/ 20 января 2012

Часто злоумышленник использует несколько уязвимостей при атаке на сайт. Есть несколько проблем с разрешением пользователю XSS самостоятельно.

CSRF - пользователь может посетить вредоносный сайт, который публикует вредоносные данные в своем профиле и, таким образом, получает XSSed.

Clickjacking с контентом - см. http://blog.kotowicz.net/2011/07/cross-domain-content-extraction-with.html

Далее, если это содержание отображается на странице общедоступной, она может перенаправлять пользователей на разные сайты, содержащие эксплойты, которые автоматически принимают за компьютер пользователя, или же они могут перенаправлять к порно.

1 голос
/ 20 января 2012

Похищение информации куки авторизации на самом деле не единственный вред, который инъекция JavaScript может принести другим пользователям.Перенаправления, отправка форм, раздражающие оповещения и неисчислимые другие плохие вещи могут произойти.Вы никогда не должны доверять HTML-контенту, предоставленному пользователем, и не показывать его другим.Чтобы избежать внедрения html и в то же время позволить пользователям предоставлять html, общая идея состоит в том, чтобы иметь предопределенный набор html-тегов, которые не могут причинить вред другим пользователям, например некоторые текстовые или разделительные абзацы, но не непроверенные изображения иJavaScript.Вы анализируете предоставленный HTML и удаляете все, кроме этих тегов.

Вы можете использовать HtmlAgilityPack или любую другую библиотеку, которая может помочь вам разобрать html, предоставленный пользователем.Чем вы можете отфильтровать и удалить любой нежелательный источник и оставить только безопасную разметку.

...