2012-04-13 3 views
2

Может быть вопрос о noobish (скорее всего), но в соответствии с официальными документами разработчика. HTML-виджет GWT не является безопасным для XSS, и нужно проявлять осторожность при встраивании пользовательского текста HTML/Script.GWT HTML Widget XSS security

Так я думаю, мой вопрос, почему это:

HTML testLabel = new HTML("dada<script type='text/javascript'>document.write('<b>Hello World</b>');</script>"); 

Не показывать яваскрипт всплывающего окна? Если каким-то образом HTML-виджет GWT защищает от атак XSS, то в каких ситуациях он не работает (так что я могу знать, чего ожидать)?

+0

см. Подобное сообщение здесь: [SafeHTml] (http://stackoverflow.com/questions/6177329/gwt-safehtml-xss-best-practices) – Shehzad

ответ

2

содержит несколько articles о безопасности (включая работу с XSS с использованием SafeHtml).

Ваш пример не работает, потому что скрипты, определенные через innerHTML, не выполняются в Chrome/Firefox (я думаю, что для IE был обходной путь с использованием атрибута defer).

Но вы не должны полагаться на это ограничение браузера. Поэтому лучше использовать SafeHtml и всегда проверять входные данные от пользователей.

+0

Отлично, спасибо. – user1021138

2

Я не знаю об этом виджетах в частности, но в целом стоит знать, что векторы XSS входят в число много разных ароматов. Только небольшой процент на самом деле использует тег script.

Одним из очень важных факторов является то, что они зависят от местоположения. Например, строка, свободная от xss вне любых тегов, может быть небезопасной внутри значения атрибута тега или внутри строки с разделителями, которая находится внутри блока javascript.

Они также могут быть зависимыми от браузера, так как многие используют «ошибки» в модели синтаксического разбора документа.

Чтобы получить представление о многообразии различных векторов, которые могут быть использованы вредоносной для создания вредоносного яваскрипта инъекции, пожалуйста, увидеть эти два cheatsheets

Я также рекомендую вам прочитать GWT документация prevention cheat sheet at owasp

+0

Большое спасибо, крайне полезны языковые агностики! – user1021138