Предотвращение атак XSS при хранении HTML - PullRequest
3 голосов
/ 14 июня 2011

Мой сайт хранит HTML, созданный пользователем. Затем, конечно, эти данные отображаются на веб-странице. Каковы лучшие практики для разметки HTML и предотвращения атак XSS? Достаточно ли вырезать теги <script> и <iframe>? Будет ли это охватывать все браузеры? Я слышал о старых браузерах, рендеривших HTML из странной кодировки ... как я могу справиться с этим?

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

Ответы [ 4 ]

3 голосов
/ 14 июня 2011

Вы можете использовать библиотеки типа Jsoup , особенно их белый список-дезинфицирующее средство для предотвращения XSS.

В общем, я думаю, что лучше / безопаснее использовать белый список вместо фильтрации черных перечисленных тегов.Кроме того, HTML следует избегать в первую очередь.Вместо этого следует использовать некоторую простую разметку, например markdown .

0 голосов
/ 14 июня 2011

Вы потерялись, когда позволите вашему пользователю установить HTML на вашей странице, там есть широкий спектр возможностей, таких как onmouseover "myEvilJS" или

0 голосов
/ 14 июня 2011

Я могу заверить вас, что нет способа безопасно сделать то, что вы просите.Хитрый хакер всегда сможет использовать систему, которая разрешает произвольный html от пользователя, даже если он очищен путем удаления определенных тегов.Именно поэтому существуют такие инструменты, как markdown и BBcode .Зачем смотреть, даже StackOverflow использует подобное.

Дорога, которую вы планируете путешествовать, усеяна 10 000 эксплуатируемых веб-сайтов.

0 голосов
/ 14 июня 2011

Минимум, вы должны конвертировать эти символы.
& -> &
<-> <<br>> ->>
«->"
'->'
/ -> /

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