Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Google Web Toolkit. Безопасность бизнес-приложений

Содержание

Появление GWT Google Web Toolkit (GWT) был неожиданно открыт для публики 18 мая 2006 года на ежегодной конференции JavaOne в Сан-Франциско. Цель, которая стояла перед GWT, была очень простой: сделать разработку с помощью технологии Ajax проще за
Google Web ToolkitБезопасность бизнес-приложенийКарпунов ГеннадийДонецк, 2010 Появление GWT	Google Web Toolkit (GWT) был неожиданно открыт для публики 18 мая Принципы GWT	Google Web Toolkit объединяет клиентский и серверный код в отдельном приложении, Источник уязвимости	Необходимо учитывать, что код Java, написанный в удобной IDE, в конце Угрозы	При рассмотрении угроз для технологии GWT следует учитывать как угрозы к самой Угрозы	Эти проблемы, как и многие другие в интернете, берут начало от вредоносных Same-Origin Policy	Same-Origin Policy (SOP) говорит, что код, запущенный на странице, который был Варианты XSS взломазлой код создает невидимый iframe и добавляет в него . Варианты XSS взломаJavaScript может добавлять новые ресурсы - такие как теги - Варианты XSS взломазлой код создает невидимый iframe, конструирует URL с параметрами в Варианты XSS взломазлой код создает тег с функциями, похожими на атаку.	Список путей, Защита от XSSВ настоящее время можно быть уверенным, что GWT защищает от Внешние JS конструкции	Многие GWT разработчики используют GWT наряду с другими JavaScript решениями. Работа с innerHtml	Это распространенная техника, чтобы заполнять тела таблиц, DIV-ов, фреймов, и Пример взлома XSS	При использовании стандартных GWT виджетов разработчики не защищены от XSS. Предпосылка XSS Последствия XSS Пример взлома XSS	Но и это не наихудший вариант взлома. Таким же образом Предпосылка XSS Последствия XSS Аутентификация пользователя	Вследствие удобности разработки на GWT, разработчик порой забывает, какой код он Аутентификация пользователя	Как известно, любой запрос, исходящий от клиентской части, потенциально опасный. Поэтому Скрытые элементы	Иногда в больших системах есть разграничения доступа различных пользователей к различным Скрытые элементыВариант 1:if (canDeleteUser) {	this.deleteButton = new Button(“Delete”);	add(deleteButton);}Вариант 2:this.deleteButton = new Button(“Delete”);add(deleteButton);if (!canDeleteUser) {	deleteButton.setVisible(false);}В ЧЕМ ОТЛИЧИЕ? Скрытые элементы	Вариант 2 выглядит более привлекательно, потому что при добавлении кнопки мы Скрытые элементы	Но если вспомнить, что клиентский код будет преобразован в JavaScript, получим Скрытые элементы	Для второго варианта соответственно: Скрытые элементы	Современные браузеры позволяют редактировать DOM модель загруженной страницы. Поэтому, используя, например, Скрытые элементы Выводы	Технология GWT является популярной среди программистов. Google всячески поддерживает новшества в ней, СпасибоАвтор:Карпунов ГеннадийИспользовались материалы статьи: http://groups.google.com/group/Google-Web-Toolkit/web/security-for-gwt-applications?pli=1 Mail: sweet_misery@list.ruICQ: 483696862IM: muzikant_777Skype: muzikant_777
Слайды презентации

Слайд 2 Появление GWT
Google Web Toolkit (GWT) был неожиданно открыт

Появление GWT	Google Web Toolkit (GWT) был неожиданно открыт для публики 18

для публики 18 мая 2006 года на ежегодной конференции

JavaOne в Сан-Франциско. Цель, которая стояла перед GWT, была очень простой: сделать разработку с помощью технологии Ajax проще за счет сокрытия несовместимостей браузеров от программиста и позволить разработчику работать в среде, подобной Java.

Слайд 3 Принципы GWT
Google Web Toolkit объединяет клиентский и серверный

Принципы GWT	Google Web Toolkit объединяет клиентский и серверный код в отдельном

код в отдельном приложении, написанном на одном языке -

Java. Это имеет ряд преимуществ. С одной стороны, довольно много разработчиков знают Java и JavaScript или Flash. С другой стороны, Java изобилит средствами разработки, такими как Eclipse, NetBeans и IDEA. GWT позволяет создавать web-приложения так же, как вы создаете Swing приложения, обеспечивая создание визуальных компонентов, установку обработчиков событий, отладку и т.д. - все в пределах стандартной IDE.

Слайд 4 Источник уязвимости
Необходимо учитывать, что код Java, написанный в

Источник уязвимости	Необходимо учитывать, что код Java, написанный в удобной IDE, в

удобной IDE, в конце концов, преобразуется в код JavaScript

и будет исполняться в клиентском браузере. Поэтому GWT неявно перенимает все недостатки JavaScript, которые существуют на сегодняшний день. Разработчики Google максимально позаботились об общих вещах безопасности, но не меньшая ответственность в обеспечении безопасности лежит на программистах, использующих GWT.

Слайд 5 Угрозы
При рассмотрении угроз для технологии GWT следует учитывать

Угрозы	При рассмотрении угроз для технологии GWT следует учитывать как угрозы к

как угрозы к самой технологии – стандартным классам, взаимодействию

клиента с сервером по протоколу GWT RPC, - так и угрозы, которые необходимо учитывать программисту при проектировании и разработке программного комплекса.

Слайд 6 Угрозы
Эти проблемы, как и многие другие в интернете,

Угрозы	Эти проблемы, как и многие другие в интернете, берут начало от

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

процент своей жизни над размышлениями о том, как украсть данные. Продавцы web браузеров вносят свой вклад в борьбу с этими людьми и один из путей осуществления этого Same-Origin Policy.

Слайд 7 Same-Origin Policy
Same-Origin Policy (SOP) говорит, что код, запущенный

Same-Origin Policy	Same-Origin Policy (SOP) говорит, что код, запущенный на странице, который

на странице, который был загружен с Сайта А, не

может иметь доступа к данным или к сетевым ресурсам, принадлежащим любому другому сайту или даже любой другой странице (кроме других страниц, которые также загружены с Сайта А). Целью является предотвращение инъекции вредного кода хакерами в Сайт А, собирающего ваши личные данные и отправляющего Сайту В. Это, конечно, известные ограничения, защищающие AJAX код от XMLHTTPRequest вызовов к URL, который не является тем же сайтом, с текущей страницей.

Слайд 8 Варианты XSS взлома
злой код создает невидимый iframe и

Варианты XSS взломазлой код создает невидимый iframe и добавляет в него

добавляет в него . Действие формы устанавливается в URL

сервера, который контролирует атакующий. Затем форма заполняется данными, которые поступают из родительской страницы и затем форма отправляется.

Слайд 9 Варианты XSS взлома
JavaScript может добавлять новые ресурсы -

Варианты XSS взломаJavaScript может добавлять новые ресурсы - такие как теги

такие как теги - на текущую страницу. Можно

вызвать изображение, находящееся на foo.com, для встраивания на bar.com. Не сложно вообразить сценарий, где злой код крадет полезную информацию и зашифровывает ее в ; например, тег может выглядеть так:
"/>

Слайд 10 Варианты XSS взлома
злой код создает невидимый iframe, конструирует

Варианты XSS взломазлой код создает невидимый iframe, конструирует URL с параметрами

URL с параметрами в запросе содержащие в себе информацию

из родительской страницы и затем устанавливает iframe "src" в URL сервера, который находится под контролем атакующего.

Слайд 11 Варианты XSS взлома
злой код создает тег с

Варианты XSS взломазлой код создает тег с функциями, похожими на атаку.	Список

функциями, похожими на атаку.

Список путей, которыми злой код

может попасть на хорошую страницу, можно продолжать бесконечно.

Слайд 12 Защита от XSS
В настоящее время можно быть уверенным,

Защита от XSSВ настоящее время можно быть уверенным, что GWT защищает

что GWT защищает от XSS в следующих направлениях:
JavaScript на

host странице, который не имеет отношения к GWT;
написанный вручную код, устанавливающий innerHTML на GWT Widget объекты;
использование JSON API для разбора ненадежных строк (которые, в конечном счете, вызывают eval функцию JavaScript);
JavaScript Native Interface (JSNI) код, который пишется разработчиком, что нарушает безопасность (установка innerHTML, вызов eval, писать прямо в документ через document.write, и т.п.).

Слайд 13 Внешние JS конструкции
Многие GWT разработчики используют GWT наряду

Внешние JS конструкции	Многие GWT разработчики используют GWT наряду с другими JavaScript

с другими JavaScript решениями. Например, приложение может использовать mashup

с кодом из разных сайтов, или можно использовать JavaScript библиотеку третьих лиц вместе с GWT. В этом случае, приложение может стать уязвимым.
Если необходимо смешивать другой JavaScript код с GWT в вашем приложении, важно чтобы просматривался каждый кусочек, чтобы быть уверенными, что приложение защищено.

Слайд 14 Работа с innerHtml
Это распространенная техника, чтобы заполнять тела

Работа с innerHtml	Это распространенная техника, чтобы заполнять тела таблиц, DIV-ов, фреймов,

таблиц, DIV-ов, фреймов, и других подобных UI элементов некоторым

статичным HTML контентом. Это особенно легко достигается, через определение innerHTML атрибута JavaScript объекта. Однако, это рискованно, так как позволяет злому содержанию напрямую загружаться на вашу страницу.

Слайд 15 Пример взлома XSS
При использовании стандартных GWT виджетов разработчики

Пример взлома XSS	При использовании стандартных GWT виджетов разработчики не защищены от

не защищены от XSS. Например, рассмотрим виджет Grid. Без

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

Слайд 16 Предпосылка XSS

Предпосылка XSS

Слайд 17 Последствия XSS

Последствия XSS

Слайд 18 Пример взлома XSS
Но и это не наихудший вариант

Пример взлома XSS	Но и это не наихудший вариант взлома. Таким же

взлома. Таким же образом можно вставить JavaScript код или

целый блок разметки, с помощью которого злоумышленник будет делать то, что хочет.

Слайд 19 Предпосылка XSS

Предпосылка XSS

Слайд 20 Последствия XSS

Последствия XSS

Слайд 21 Аутентификация пользователя
Вследствие удобности разработки на GWT, разработчик порой

Аутентификация пользователя	Вследствие удобности разработки на GWT, разработчик порой забывает, какой код

забывает, какой код он пишет в данный момент: серверный

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

Слайд 22 Аутентификация пользователя
Как известно, любой запрос, исходящий от клиентской

Аутентификация пользователя	Как известно, любой запрос, исходящий от клиентской части, потенциально опасный.

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

в клиентском коде. Необходимо делать удаленный вызов на сервер, аутентифицировать его, а затем заносить данные о пользователе в параметры сессии.

Слайд 23 Скрытые элементы
Иногда в больших системах есть разграничения доступа

Скрытые элементы	Иногда в больших системах есть разграничения доступа различных пользователей к

различных пользователей к различным частям системы. Вследствие этого пользователь

может, например, не видеть каких-либо кнопок на экране. Например, сравним следующие участки кода.

Слайд 24 Скрытые элементы
Вариант 1:
if (canDeleteUser) {
this.deleteButton = new Button(“Delete”);
add(deleteButton);
}

Вариант

Скрытые элементыВариант 1:if (canDeleteUser) {	this.deleteButton = new Button(“Delete”);	add(deleteButton);}Вариант 2:this.deleteButton = new Button(“Delete”);add(deleteButton);if (!canDeleteUser) {	deleteButton.setVisible(false);}В ЧЕМ ОТЛИЧИЕ?

2:
this.deleteButton = new Button(“Delete”);
add(deleteButton);
if (!canDeleteUser) {
deleteButton.setVisible(false);
}
В ЧЕМ ОТЛИЧИЕ?


Слайд 25 Скрытые элементы
Вариант 2 выглядит более привлекательно, потому что

Скрытые элементы	Вариант 2 выглядит более привлекательно, потому что при добавлении кнопки

при добавлении кнопки мы можем свободно манипулировать ее состоянием

(активна/неактивна), не думая о том, что она возможно не создана и сгенерирует NullPointerException.


Слайд 26 Скрытые элементы
Но если вспомнить, что клиентский код будет

Скрытые элементы	Но если вспомнить, что клиентский код будет преобразован в JavaScript,

преобразован в JavaScript, получим для варианта 1 полное отсутствие

кнопки в DOM модели:


Слайд 27 Скрытые элементы
Для второго варианта соответственно:

Скрытые элементы	Для второго варианта соответственно:

Слайд 28 Скрытые элементы
Современные браузеры позволяют редактировать DOM модель загруженной

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

страницы. Поэтому, используя, например, Google Chrome, получаем явную уязвимость

(при отсутствии дополнительной проверки права на сервере):

Слайд 29 Скрытые элементы

Скрытые элементы

Слайд 30 Выводы
Технология GWT является популярной среди программистов. Google всячески

Выводы	Технология GWT является популярной среди программистов. Google всячески поддерживает новшества в

поддерживает новшества в ней, выпуская новые версии, исправляя известные

ошибки. Разработчики GWT позаботились о максимальной безопасности GWT. Но, с учетом особенности среды, в которой будет работать результирующий код, необходимо быть предельно осторожным при использовании GWT.

  • Имя файла: google-web-toolkit-bezopasnost-biznes-prilozheniy.pptx
  • Количество просмотров: 91
  • Количество скачиваний: 0