Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Защита Web-приложений. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
689 Кб
Скачать

пользователей. Это лучший вариант, если ваша организация

 

должна управлять большими объемами конфиденциальных

 

данных, имеет юридические требования для защиты данных

 

или просто не нуждается в гибкости использования облачного

 

хранилища.

 

 

 

 

 

 

Разрешить неконтролируемый доступ

 

 

 

Вы можете игнорировать проблемы, связанные с

 

использованием

облачного

хранилища. Однако

такая

 

политика открывает для вашей организации потерю данных,

 

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

 

организации

в

настоящее время используют этот подход,

 

потому

что

контроль

доступа

пользователей

ста

чрезвычайно сложным, а организации не хватает средств для

 

использования какого-либо другого подхода.

 

 

 

Использовать корпоративный доступ

 

 

 

Если вам

требуется, чтобы

пользователи обращались к

 

облачному хранилищу с использованием учетной записи

 

компании,

вы

 

можете, по

крайней

мере, отслеживать

 

использование файлов и иметь средства для восстановления

 

данных после ухода сотрудника. Однако основные проблемы

 

с

облачным

 

хранилищем

остаются. Хакер, обладающий

 

необходимыми знаниями, может получить доступ к учетной

 

записи и

получить ваши

данные. Этот вариант работает

 

хорошо, если ваша организация не управляет данными с

 

юридически необходимыми средствами защиты, и вы готовы

 

обменять безопасность на удобство.

 

 

 

 

 

Контроль доступа в приложении

 

 

 

 

 

Многие облачные сервисы поддерживают API, который

 

позволяет

 

уникальным

образом

взаимодействовать

с

сервисом. Хотя этот подход довольно трудоемкий, он дает

 

преимущество,

 

позволяя

вам

контролировать, где

 

пользователь хранит конфиденциальные данные, в

то

же

 

время предоставляя пользователю гибкость в использовании

 

облачного хранилища для менее конфиденциальных данных.

 

Вы

должны

рассмотреть

это

решение, когда

вашей

 

организации

 

 

необходимо

взаимодействовать

с

большим

 

21

количеством

партнеров,

а

также необходимо

управлять

большими объемами конфиденциальных данных.

 

 

Положитесь на стороннее решение

 

 

 

 

Вы

можете

найти

сторонние решения, такие как

 

Accellion,

которые

 

предоставляют

услуги

облачного

хранилища.

 

Поставщик

 

предоставляет

 

сервис, который

 

выступает в качестве посредника между вашим приложением

 

и

онлайн-хранилищем

данных. Пользователь

может

 

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

 

контролирует

доступ

с

помощью

установленных

вами

политик. Проблема этого подхода заключается в том, что

 

теперь

у

 

вас

есть

дополнительный

,уровенькоторый

 

необходимо учитывать при написании приложения. Кроме

 

того, вы должны доверять третьей стороне, предоставляющей

 

доступ. Это конкретное решение хорошо работает, когда вам

 

нужна гибкость без обычных затрат на разработку , и вы не хотите создавать свое собственное решение, основанное на доступе API.

1.5.Использование внешнего кода и ресурсов

Убольшинства организаций сегодня нет времени или ресурсов, необходимых для создания приложений с нуля.

Кроме того, затраты на поддержание такого

приложения

 

будут

огромными.

 

Чтобы

 

контролировать

расходы,

 

организации

обычно

полагаются

на

сторонний

код

в

различных

 

формах.

 

Например,

API (аббревиатура

от

 

Application

 

Programming

Interface)

интерфейс

 

программирования

приложений,

позволяющий

сервисам

 

взаимодействовать, получать

 

доступ

и

обмениваться

данными. Код выполняет общие задачи, и разработчики

 

используют его для создания приложений. Однако сторонний

 

код не обходится без проблем с безопасностью. По сути, вы

 

зависите от того, кто еще будет писать код приложения,

 

который не только хорошо работает и

выполняет

все

необходимые вам задачи, но и делает это безопасно.

 

 

 

22

Как и API, микросервисы выполняются в хост-системе.

 

Вы делаете запрос, и

микросервис отвечает каким-то

ресурсом (обычно данными). Однако микросервисы сильно

 

отличаются от API. Акцент делается на небольшие задачи с

 

микросервисами – типичный микросервис хорошо выполняет

 

одну задачу.

Кроме

того,

микросервисы

обычно

уделяют

 

большое

 

внимание

независимости

платформы. Идея

 

заключается в предоставлении сервиса, который может

 

взаимодействовать с любой платформой любого размера и

 

любой мощности. При работе с микросервисами необходимо

 

убедиться, что хост надежен, и что единственная задача,

 

которую выполняет микросервис, четко определена. Также

 

важно

учитывать,

как

микросервис

 

взаимодействует

с

любыми

данными,

которые

вы

предоставляете, и

не

 

предполагать, что каждый микросервис взаимодействует с

 

данными одинаково (даже если микросервисы существуют на

 

одном

хосте). Использование

микросервисов

означает

 

эффективность и способность работать с более широким

спектром платформ, но вам также необходимо знать о

необходимости дополнительных проверок безопасности.

 

 

1.6. Исследование сторонних решений безопасности

 

 

Изобретать

 

колесо

всегда

плохая .

идеяВполне

 

возможно, что кто-то еще уже создал решение безопасности,

 

которое

 

достаточно

хорошо

 

соответствует

ваши

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

 

собственного решения безопасности. Стороннее решение

 

должно отображаться как часть вашего плана безопасности,

 

чтобы другие знали, что вы имеете в виду это решение. Кроме

 

того, имея стороннее решение в своем плане, вы можете

 

включить в него всевозможную информацию и пригласить к

 

обсуждению решения.

 

 

 

 

 

 

 

Конечно, прежде чем вы сможете что-либо сделать, вы

 

должны

найти

 

стороннее

решение, которое

 

хотите

 

использовать.

К

счастью,

есть

методы, которые

можно

 

использовать,

чтобы

сократить

время,

необходимое

для

 

23

выполнения

процесса,

а

затем

исследовать

отдельные

решения,

чтобы

убедиться, что

они

действительно

соответствуют

вашим

 

потребностям. Как

только

вы

обнаружите решения, которые хотите использовать, важно

 

учитывать плюсы и минусы каждого типа решения.

 

 

 

 

Найти стороннее решение по безопасности может быть

 

сложно. Введите большинство поисковых терминов, которые

 

вы можете придумать, в поисковую систему, и вы получите

 

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

 

которых

могут

даже

не

относиться

к вашей

конкретной

проблеме.

 

 

 

 

 

 

 

 

 

 

 

Например,

существует

помощь

в

виде

сайтов

агрегаторов по информационной безопасности, таких как

 

Capterra.

Этот

сайт

предоставляет

помощь

в

форме

фильтрации, которая помогает вам разобраться с различными

 

поставщиками. Каждая из записей имеет краткий обзор, на

 

который вы можете нажать, чтобы узнать дополнительную

 

информацию.

Во

многих случаях в обзор также входят

средства массовой информации, которые могут предоставить

 

демонстрацию продукта или другую полезную информацию.

 

Тот

факт,

что

рецензии

находятся

в

одном ,

месте

отфильтрованы

по

 

заданным

 

вами

 

критериям

отформатированы практически одинаково, облегчает процесс

 

поиска.

 

 

 

 

 

 

 

 

 

 

24

2. МЕТОДЫ КОДИРОВАНИЯ

 

Современные приложения не существуют в

вакууме.

Если бы разработчик создавал каждое приложение

с нуля,

этот процесс занял бы неприемлемое количество времени. Использование библиотек, API-интерфейсов и микросервисов

значительно

ускоряет

и

 

упрощает

процесс

создания

приложения. Кроме

того,

поскольку код,

предоставленный

 

этими

сторонними

источниками, подвергается

 

такому

тщательному анализу, он имеет тенденцию становиться все

более

безопасным, чем

код,

который

вы

можете

создать

самостоятельно,

и

на

него

обычно

быстрее

приходят

обновления.

 

 

 

 

 

 

 

 

 

 

 

 

 

2.1. Создание интерфейса

 

 

 

 

 

Важной частью создания работоспособных интерфейсов

 

сегодня является их простота. Сложные интерфейсы старого

 

образца

создают

проблемы

безопасности, потому

что

пользователь не уверен, что делать, или, возможно, слишком

 

много,

чтобы

сделать.

Доступные

сегодня

библиотеки

позволяют

создавать

 

четкие

 

 

интерфейсы, которые

 

фокусируются на одной проблеме за раз во многих ситуациях.

 

Например, интерфейс с вкладками, показанный на рис. 1,

 

предоставляет

пример

понятного

 

интерфейса, который

 

одновременно

выполняет

только

одну

операцию– выбор

 

цвета фона.

 

 

 

 

 

 

 

 

 

 

 

Этот интерфейс довольно понятен. Он задает выбор,

 

предоставляет ограниченное количество ответов и затрудняет

 

пользователю ввод неверных данных. Пользователь выбирает

 

цвет, нажимает кнопку и переходит к следующей

вкладке.

Ряд Web-приложений

теперь

используют

 

такой

интерфейс.

Вы могли заметить, что это используется для листов регистрации.

25

Рис. 1. Пример Web-интерфейса

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

<!DOCTYPE html> <html>

<head>

<script src="https://code.jquery.com/jquery-latest.js">

</script>

<script src="https://code.jquery.com/ui/1.9.2/jquery-ui.js">

</script>

<link rel="stylesheet" href="https://code.jquery.com/ui/1.9.2/themes/base/jquer y-ui.css" />

<title>Using the Tabs Widget</title> <style>

#Configuration

{width: 90%; text-align: center;

}

#Configuration div {text-align: left;

}

</style>

<script language="JavaScript"> $(function()

{$("#Configuration").tabs();

26

});

</script>

</head>

<body>

<h1>Using the Tabs Widget</h1>

<form id="ConfigForm" method="get" action="Tabs.html"> <div id="Configuration">

<ul>

<li><a ref="#Tab1">Foreground Color</a></li> <li><a href="#Tab2">Background Color</a></li>

<li><a href="#Tab3">Options</a></li> </ul>

<div id="Tab1"> <input id="FGRed"

type="radio"

name="Foreground"

value="Red" checked="checked" />

<label for="FGRed">Red</label><br /> <input id="FGOrange"

type="radio"

name="Foreground" value="Orange" />

<label for="FGOrange">Orange</label><br /> <input id="FGGreen"

type="radio"

name="Foreground" value="Green" />

<label for="FGGreen">Green</label><br /> <input id="FGBlue"

type="radio"

name="Foreground" value="Blue" />

<label for="FGBlue">Blue</label> </div>

<div id="Tab2"> <input id="BGRed"

type="radio"

name="Background"

value="Red" checked="checked" />

<label for="BGRed">Red</label><br /> <input id="BGOrange"

type="radio"

name="Background" value="Orange" />

<label for="BGOrange">Orange</label><br /> <input id="BGGreen"

type="radio"

name="Background" value="Green" />

<label for="BGGreen">Green</label><br />

27

<input id="BGBlue" type="radio" name="Background" value="Blue" />

<label for="BGBlue">Blue</label> </div>

<div id="Tab3"> <input id="Sounds"

type="checkbox"

name="Sounds" value="SpecialSounds" />

<label for="Sounds">Use Special Sounds</label><br /> <input id="Effects"

type="checkbox"

name="Effects" value="SpecialEffects" />

<label for="Effects">Use Special Effects</label> </div>

</div>

<input id="ChangeConfig" type="submit"

value="Change Configuration" /> </form>

</body>

</html>

Чтобы создать этот интерфейс, нужно импортировать библиотеки jQuery и jQueryUI и связанную таблицу стилей jQueryUI. Информация о вкладке отображается <div>в с идентификатором конфигурации. Простота заключается в использовании для создания интерфейса выполнения вызова $ ("# Configuration"). Tabs ().

2.1.1. Создание гибкого интерфейса

Снижение

возможности

пользователя

вводить

недопустимые данные, упрощение интерфейса и упрощение

 

его работы – все

это по-разному ограничивает возможности

 

пользователя. Это

формы ограничений,

которые помогают

 

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

28

Перемещение

 

 

 

 

 

 

 

 

 

 

 

Перемещение элементов по экрану может предоставить

 

пользователю

 

лучшее

 

представление

 

об

интерфейсе

и

потенциально уменьшить количество ошибочных входных

 

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

 

пользователю

 

взаимодействовать

с

приложением

таким

 

образом, который лучше всего подходит.

 

 

 

 

 

 

Изменение размера

 

 

 

 

 

 

 

 

 

 

Есть много причин, по которым пользователю может

 

потребоваться

 

изменить

размер

элемента

интерфейса.

Возможно, текст – слишком маленький. Сочетание действия

 

изменения

 

размера

с

 

возможностью, предоставляемой

 

большинством браузеров, уменьшать или увеличивать размер

 

текста по мере необходимости, помогает пользователю лучше

 

видеть информацию.

 

 

 

 

 

 

 

 

 

 

 

Выбор

 

 

 

 

 

 

 

 

 

 

 

 

 

Выбор

должен

обеспечивать

несколько

 

способов

отображения информации, таких как использование более

 

толстых

границ,

представление

выделения

в

более

белом

 

(более ярком) цвете, изменение текстовых атрибутов и цветов

 

интерфейса.

 

 

 

 

 

 

 

 

 

 

 

 

 

Сортировка

 

 

 

 

 

 

 

 

 

 

 

Пользователь должен видеть данные в определенном

 

порядке, который

имеет

смысл

для

пользователя,

не

 

обязательно для вас. Имея это в виду, предоставьте несколько

 

способов сортировки данных, когда это возможно, чтобы

 

пользователь мог выполнить необходимый анализ и сделать

 

выбор с большей легкостью.

 

 

 

 

 

 

 

 

 

Библиотеки

пользовательского

интерфейсаjQuery

и

 

jQueryUI

предоставляют

 

средства

для

 

выполнения

всех

 

важных задач по гибкости интерфейса и множества других

 

задач (например, возможность

ввода данных

с помощью

 

перетаскивания).

На

рис.

2

показан

пример

использования

 

этих библиотек для перемещения элементов по экрану.

29

 

 

Рис. 2. Пример Web-интерфейса

 

 

 

Создать

 

интерфейс

с

подвижными

элементами

относительно

легко. В следующем коде показано, как это

 

сделать (этот

код

также

 

можно

увидеть

в

файл

DragContent.html):

 

 

 

 

 

 

<!DOCTYPE html> <html>

<head>

<script src="https://code.jquery.com/jquery-latest.js">

</script>

<script src="https://code.jquery.com/ui/1.9.2/jquery-ui.js">

</script>

<link

rel="stylesheet"

href="https://code.jquery.com/ui/1.9.2/themes/base/jquery -ui.css" />

<style>

#MoveMe

{

border: solid; width: 200px; height: 5em; text-align: center; line-height: 5em;

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]