_Успехи в химии и химической технологии. ТОМ XXIX. 2015. № 4_
УДК 664.143
А. М. Станкевич, Г. Н. Семёнов*
Российский химико-технологический университет им. Д.И. Менделеева, Москва, Россия 125480, Москва, ул. Героев Панфиловцев, д. 20 * e-mail: [email protected]
СОВРЕМЕННЫЕ ПОДХОДЫ К РАЗРАБОТКЕ ВЕБ-ПРИЛОЖЕНИЙ НА ПРИМЕРЕ САЙТА СБАЛАНСИРОВАННОГО ПИТАНИЯ
Аннотация
Предложены современные эффективные подходы к разработке веб-приложений для баз данных. Рассмотрен протокол OAuth и его преимущества при авторизации и регистрации. Предложены элементы дизайна и функционала сайта сбалансированного питания.
Ключевые слова: веб-приложение, веб-страница, регистрация, умный поиск, протокол Oauth.
Введение
В настоящее время при разработке веб-приложений основными требованиями являются кроссбраузерность, адаптивная вёрстка, регистрация, авторизация, поисковая система для сайта. Кроссбраузерность - это свойство сайта отображать все элементы сайта во всех браузерах одинаково. Адаптивная вёрстка-дизайн веб-страниц
обеспечивающие одинаковое отображение на различных устройствах(планшеты, телефоны, ноутбуки, настольные компьютеры). Авторизация через социальные сервисы осуществляется по средствам протокола Oauth.
Протокол OAuth
OAuth - открытый протокол, который выполняет процесс авторизации. Данный протокол позволяет предоставить третьей стороне ограниченный доступ к защищенным ресурсам пользователя (логин, пароль, email) без необходимости передавать ей логин и пароль [1].
Предпосылок для создания OAuth 2.0 было несколько. В первую очередь, OAuth достаточно нетривиально использовать на клиентской стороне. Одна из поставленных целей при разработке нового OAuth - упростить разработку клиентских приложений. Во-вторых, несмотря на заявленную в стандарте реализацию трех методов (называемых потоками - flows) получения токена (уникального идентификатора) для авторизации: для веб-приложений, настольных клиентов и мобильных клиентов, фактически все три способа слиты в один. И, в-третьих, протокол оказался плохо масштабируемым. В него планируется добавить шесть новых потоков:
1. поток пользователя-агента (User-Agent Flow) -для клиентов, работающих внутри агента пользователя (обычно веб-браузер);
2. поток веб-сервера (Web Server Flow - для клиентов, которые являются частью веб-приложения сервера, доступные через запросы HTTP;
3. поток устройства (Device Flow) - подходит для клиентов, выполняющихся на ограниченных устройствах, но там, где конечный пользователь
имеет отдельный доступ к браузеру на другом компьютере или устройстве;
4. поток имени пользователя и пароля (Username and Password Flow) - используется в тех случаях, когда пользователь доверяет клиенту обрабатывать свои полномочия, но по-прежнему нежелательно разрешать клиенту сохранить имя и пароль пользователя. Этот поток подходит только когда есть высокая степень доверия между пользователем и клиентом;
5. поток клиентских полномочий (Client Credentials Flow) - клиент использует свои полномочия для получения токена;
6. поток утверждения (Assertion Flow) - клиент представляет утверждение, такие как утверждение SAML к серверу авторизации в обмен на токен.
Приложения, работающие на настольном компьютере или мобильном устройстве, могут быть реализованы с использованием выше названных потоков.
Регистрацию и авторизацию можно осуществить двумя способами: стандартный - регистрация логина и пароля на сайте или же авторизация через социальные сети (google+, vk.com, facebook).
Процесс авторизации можно представить в виде следующих стадий:
1. редирект (перенаправление пользователя на другую страницу) на страницу авторизации;
2. на странице авторизации у пользователя запрашивается подтверждение выдачи прав;
3. в случае согласия пользователя, браузер редиректится на URL, указанный при открытии страницы авторизации, с добавлением в GET-параметры специального ключа - authorization code;
4. сервер приложения выполняет POST-запрос с полученным authorization code в качестве параметра. В результате этого запроса возвращается access token [2].
Преимущества OAuth-авторизации: 1. Безопасность.
При разработке приложения не нужно заботиться об обеспечении конфиденциальности логина и пароля пользователя. Логин и пароль не передаются
приложению, а следовательно, не могут попасть в руки злоумышленников.
2. Повышение лояльности пользователей У пользователя больше оснований доверять приложению, поскольку пользователь может быть уверен, что несанкционированный доступ к его личным данным невозможен. Не владея логином и паролем пользователя, приложение сможет
выполнять только те действия с данными, которые разрешил пользователь, и никакие другие.
3. Удобство для пользователей Если сам пользователь уже авторизован на сервисе, ему не нужно вводить логин и пароль повторно перед выдачей разрешения приложению. Отсутствие необходимости часто вводить логин и пароль особенно актуально для пользователей мобильных приложений [1].
Приложение
Редирект на страницу авторизации
Сервис
Запрос подтве роде ни я выдани прав
*
Редирект на принмлающую страниц
I
L
Выдача access token
Доступ к защищеннькл ресурса«
J
L
-Взаимодействие через браузер пользователя
---Прямое взаимодействие
Рис. 1. Процесс авторизации для приложений, имеющих серверную часть
Дизайн и функциональность веб-приложения
Современные веб-приложения кроме
привлекательного дизайна должны обладать удобством и функциональностью. Один из основных элементов веб-дизайна является «сайдбар». Сайдбар (англ. sidebar) - это боковая колонка сайта или блога, в которой размещена вспомогательная информация для посетителей. Обычно располагается в правой части окна. Может формироваться из одной полосы или нескольких колонок, суммарная ширина которых не больше основной контентной области. В редких случаях ресурсы проектируют без sidebar, а его функциональность переносят в шапку, меню или
«подвал» сайта, где располагается имя автора, дата документа, контактная и правовая информация.
Кроме всего прочего сайдбар является важным инструментом для продвижения сайта. Он позволяет удержать пользователя на странице, предоставив ему подробный перечень рубрик, материалов, которые тот может найти на сайте [3].
«Живой поиск» - это новая функция поиска Google, которая позволяет просматривать результаты непосредственно при вводе запроса. Чтобы наша поисковая система работала еще лучше и быстрее, мы используем все доступные технологии и ресурсы. Мы заметили, что ввод запроса занимает больше времени,
чем прочтение результатов. Между нажатиями клавиш проходит в среднем 300 миллисекунд, а взгляд на результаты запроса занимает всего 30 миллисекунд - в 10 раз меньше. Это означает, что можно одновременно вводить запрос и просматривать получаемые результаты без потери времени.
Главное отличие «Живого поиска» от обычного заключается в том, что теперь вы получаете нужную информацию гораздо быстрее, так как необязательно вводить весь запрос и даже нажимать клавишу «Enter». Кроме того, в «Живом поиске» вы видите результаты прямо при вводе текста. Таким образом, вы можете тут же изменять запрос, пока не найдете именно то, что вам нужно. Со временем, наверное,
даже сложно будет представить себе, что когда-то поиск мог быть другим [4].
Результаты
Разработан сайт сбалансированного питания, с использованием выше изложенных современных методов в сфере веб-разработки. В приложении есть модули, которые выполняют задачи регистрации и авторизации, интеллектуального поиска и возможности составления рациона на неделю, рассчитав норму полезных веществ на неделю. Веб-приложение написано на языках HTML5, CS S3, Javascript, PHP и имеет кроссбраузерную верстку. Адаптирована база данных для СУБД MySQL, которая содержит информацию о количестве нутриентов в продуктах, а также разработана база данных активности пользователей.
Станкевич Александр Матвеевич, студент 4 курса факультета Информационных технологий и управления РХТУ им. Д. И. Менделеева, Россия, Москва.
Семёнов Геннадий Николаевич, к.т.н., доцент кафедры Информационных компьютерных технологий РХТУ им. Д. И. Менделеева, Россия, Москва.
Литература
1. Википедия. Протоколы и сервисы, используемые в Internet: OAuth. [Электронный ресурс]. - Режим доступа: https://ru.wikipedia.0rg/wiki/0Auth#0Auth_2.0 (дата обращения: 27.04.2015).
2. OAuth 2.0 простым и понятным языком. [Электронный ресурс]. - Режим доступа: http://habrahabr.ru/company/mailru/blog/115163/ (дата обращения: 28.04.2015).
3. Web-Студия ГРАНД. Создание сайтов. [Электронный ресурс]. - Режим доступа: http://stdgrand.ru/sidebar/ (дата обращения: 27.04.2015).
4. Google. Формула поиска. [Электронный ресурс]. - Режим доступа: https://www.google.com/intl/ru/search/about/insidesearch/features/instant/about.html (дата обращения: 27.04.2015).
Stankevich Aleksandr Matveevich, Semenov Gennadiy Nikolaevich *
D. Mendeleev University of Chemical Technology of Russia, Moscow, Russia. * e-mail: [email protected]
MODERN APPROACH TO DEVELOPING WEB APPLICATIONS ON EXAMPLE OF A SITE OF A BALANCED DIET
Abstract
Offered modern and effective approaches to web-application development for databases. Considered the OAuth protocol and its advantages for authorization and registration. Proposed design elements and functional site on the example of a web-application of a site of a balanced diet.
Keywords: web-application, web-page, registration, intelligent search, the protocol Oauth.