Введение
Тестирование WEB-приложений – это наблюдение за функционированием программы в искусственно созданных обстоятельствах, которое позволяет определить ее соответствие поставленным требованиям, например: производительность WEB-приложения, его степень защиты и комфорт использования для рядового пользователя.
Задачи тестирования WEB-приложений:
- Нахождение ошибок в работе программы и эффективное их устранение;
- Проверка приложения на соответствие конкретным требованиям;
- Проверка качества работы создателей приложения;
- Обработка информации, которая станет основой для принятия последующих действий.
Информация, полученная в процессе тестирования, позволяет выстроить последующую стратегию развития приложения
Важно понимать, что тестирование WEB-приложений является важным этапом, так как даже самые успешные программисты таких интернет-гигантов как Google, Sony и Facebook могут допустить ошибки, которые в последствии могут стать причиной уязвимости WEB-приложения и утечки информации его пользователей
Особенности тестирования WEB-приложений
Клиент является первым элементом архитектуры, где под клиентом понимается браузер, и здесь сразу возникает вопрос тестирования кроссбраузерности.
Кроссбраузерность — это тестирование правильности работы WEB-приложения в различных браузерах и на различных операционных системах.
Кроссбраузерное тестирование проводит проверку по таким пунктам:
- Функционал, который реализуется на «стороне» клиента;
- Проверка правильности отображения графических элементов web-приложения;
- Интерактивность веб-приложения и др.
В диагностике нуждаются в первую очередь популярные браузеры, такие как Google Chrome, однако в случае наличия требований поддержки очень старых браузеров, может потребоваться тестирование, например, в браузере Internet Explorer.
При тестировании веб-приложения отдельное внимание нужно уделить валидаторам верстки. Для этого не требуется особых знаний, так как оценка соответствия качества верстки современным стандартам может выполняться за счет автоматических средств
Следующая особенность веб-приложения – это формы заполнения, и здесь нужно выделить такие элементы, как:
- Проверка обязательности заполнения полей с учетом их маркировки;
- Проверка отправки форм на соответствие ожидаемому результату;
- Проверка использования чит-листов для тестирования форм;
- Проверка выдачи информационных сообщений;
- Проверка реализации экранирования символов;
- Проверка отправки подтверждающих писем, которые приходят на почту клиента, после того как он заполнит форму;
- Проверка возможности использования специальных инструментов для диагностики форм, таких как Web Developer Toolbar.
Usability
За внешним видом и функциональностью следует удобство (Usability). Не менее важная часть, так как от нее зависит, будет ли востребован ваш продукт вообще. О каких моментах нужно помнить при тестировании usability веб-приложения?
- Соответствует ли приложение ожиданиям конечного пользователя;
- Логичность интерфейса;
- Самое нужное «сверху»;
- Продуманная навигация;
- Локализация (да, да, она относится и сюда тоже);
- Совместимость с другим софтом (соцсети) и железом;
- Скорость работы приложения;
- Информативность (сообщения / обязательные поля);
- Возможность отмены действий пользователя;
- Help — должна быть инструкция, как работать с приложением;
- Возможность печати (если нужно).
Почему тестирование сайта так важно
Мы все можем согласиться с тем, что в сегодняшнем постоянно меняющемся и конкурентном мире, интернет стал неотъемлемой частью нашей жизни. В наши дни, большинство из нас принимают решения, просматривая информацию в Интернете, поэтому хостинг веб-сайта является не столько обязательной, а сколько необходимой опцией для всех видов бизнеса. Это первый шаг к тому, чтобы стать и оставаться актуальным на рынке. Просто иметь сайт недостаточно. Организации нужно разработать информативный, доступный и удобный веб-сайт. Для сохранения всех этих качеств, веб-сайт должен быть протестирован, и этот процесс называется веб-тестированием или тестированием сайта.
Веб-тестирование — это тщательная проверка сайта на наличие потенциальных ошибок. Это полное тестирование веб-приложений перед запуском. Веб-система должна быть полностью проверена от начала до конца, прежде чем она будет запущена для конечных пользователей.Также, в ходе тестирования определяется удобство и привлекательность сайта для пользователя, быстрота получения и доступность нужной информации, надежность и безопасность использования. И, самое главное, помогает ли он достичь тех бизнес-целей, которые были поставлены в начале проекта. Общая цель веб-тестирования — найти проблемы, также известные как ошибки, проблемы или дефекты, которые могут оказать негативное влияние на веб-сайт или приложение. Веб-тестирование также можно использовать для выявления определенных областей или аспектов веб-сайта, которые можно улучшить и получить лучшие результаты, будь то больше запросов, больше продаж, больше постоянных посетителей, более счастливые пользователи или что-то еще.
Инструментарий
Для автоматизации тестирования рекомендуется использовать:
Selenium, RobotFramework — инструменты для создания наборов функциональных тестовых скриптов для проверки web-приложений.
Apache JMeter — инструмент для проведения нагрузочного тестирования и снятия количественных показателей нагрузки на сервер.
ZeNmap, XSpider, Metasploit — сканеры безопасности для исследования топологии сети, поиска уязвимостей в сетевой инфраструктуре приложения и их эксплуатации.
Acunetics WVS, инструментарий OWASP LiveCD — сканер и анализатор логики работы web-приложений, поиска уязвимостей в приложении, и инструменты для тестирования web-приложений.
При ручном тестировании приложений рекомендуется использовать вспомогательные инструменты для исследования приложения:
Snagit — для снятия скриншотов и записи действий на экране.
FireBug — плагин для Firefox, который позволяет отслеживать ошибки приложения на стороне клиента и исследовать (http://firebug.ru/).
Web Developer — плагин для Firefox, инструмент для изменения «на лету» внешнего вида приложения, работы с cookies, css, формами, фреймами, их исходными кодами и т.п. (http://ktonanovenkogo.ru/vokrug-da-okolo/programs/rasshireniya-firefox-opera-web-developer-dlya-firefox.html).
Intercepter-NG, WinDump и др. – снифферы для перехвата и анализа сетевого траффика.
Зачем это нужно?
В интернете ходят легенды о простой, но невероятно прибыльной работе, заключающейся, как раз, в проверке сайтов, потому что люди ошибочно полагают, будто тестировать очень легко — достаточно просто проверить, туда ли ведут ссылки и работают ли формы. Не стоит и говорить, что этим должен заниматься специалист, который понимает суть, знает соответствующую методику и принципы, а работа его не так уж проста. Мало того, что он систематизирует несоответствия и работает с документацией. В ходе тестирования программных продуктов его интересуют такие вопросы, как, например, «Корректно ли поведёт себя программа, если на вот эту кнопку нажать 500 раз правой кнопкой мыши?». Так что отлов ошибок лучше доверить профессионалу.
О пропуске этапа вообще не может быть и речи. Вспомните хотя бы количество ошибок после смены дизайна «ВКонтакте» или заплаток на свежевышедшую Windows 10 — всё это осталось после серьёзного тестирования, а представьте, что творилось бы без него! На рассматриваемый этап разработки может тратиться до половины отведённых на реализацию всего проекта времени и бюджета. Конечно, в большей степени это касается самописных веб-приложений, но тем не менее пренебрегать тестированием ни в коем случае нельзя.
Тестирование функциональности
Проверьте все ссылки, присутствующие на веб-странице, а также ссылки на базы данных, формы, используемые для подтверждения действий и получения информации от пользователей, файлы Cookie и т.д.
- Проверьте ссылки, исходящие от всех страниц к конкретному домену.
- Внутренние ссылки.
- Ссылки на другие элементы, расположенные внутри страниц.
- Ссылки для отправления электронной почты администратору или другим пользователям веб-страниц.
- Проверьте, нет ли ссылок на изолированные страницы.
Формы используются для получения информации от пользователей и взаимодействия с ними.
Что нужно проверить в формах:
- Правильность работы валидации в каждом поле формы.
- Значения полей, используемые по умолчанию.
- Опции для создания форм, удаления, просмотра и редактирования форм (если такие имеются).
Рассмотрим пример проекта поисковой системы, над которым я сейчас работаю. В проекте есть этапы регистрации рекламодателей и партнеров. Каждый шаг регистрации отличается от других, но зависит от остальных этапов. Поэтому весь процесс регистрации должен проходить правильно.
Есть различные виды валидации, например, проверка электронной почты, финансовой информации пользователя и т.д. Все поля с валидацией нужно протестировать в ручном или автоматическом режиме.
Тестирование файлов cookie
Cookie — это небольшие файлы, хранящиеся на компьютере пользователя. Чаще всего они используются для поддержки сеансов с авторизацией. Проверьте приложение, выключая и включая cookies в опциях браузера.
Проверьте, шифруются ли Cookie перед записью на компьютере. Протестируйте сеансы регистрации и статистику пользователя, когда сеанс посещения сайта закончится. Проверьте, влияет ли на безопасность приложения удаление файлов cookie.
Проверьте HTML/CSS
Если вы оптимизируете сайт для поисковых систем, то валидация HTML/CSS особенно важна. Первым делом проверьте сайт на наличие синтаксических ошибок в HTML-коде. Проверьте, доступен ли сайт для различных поисковых систем.
Тестирование базы данных
Взаимодействие веб-приложения с базой данных является очень важным моментом. Проверьте целостность данных и проведите тестирование сайта на наличие ошибок при редактировании, удалении, изменении форм или других действиях, имеющих отношение к базе данных.
Проверьте, все ли запросы к базе данных выполняются правильно, данные извлекаются и обновляются должным образом.
При тестировании функциональности сайтов нужно проверить:
Техники тестирования:
Техники тестирования метода чёрного ящика:
- Эквивалентное разбитие (Equivalence partitioning)
- Анализ граничных значений (Boundary value analysis)
- Анализ доменов (Domain analysis)
- Тестирование всех пар (All pairs testing, Pairwise)
- Тестирование таблицы решений (Decision table testing)
- Тестирование диаграмы переходов состояний (State transition testing)
- Графики причинно-следственных связей (Cause-Effect Graphing)
- Тестирование сценариев использования (Use Case Testing)
- Тестирование историй использования (User Story Testing)
Техники тестирования метода белого ящика:
- Тестирование покрытия операторов (Statement testing and coverage)
- Тестирование покрытия условий и решений (Decision testing and coverage)
- Тестирования покрытия условий и значений операторов (The value of statement and decision testing)
Техники основанные на опыте:
- Предугадывание ошибок (Error guessing)
- Исследовательское тестирование (Exploratory testing)
- Свободное тестирование (Ad-hoc testing
- Тестирование по чеклистам (Checklist-based testing)
Техники тестирования основанные на дефектах:
Таксономии дефектов (Defect taxonomies)
Основные виды нагрузочного тестирования
Тестирование производительности (Performance testing)
Задачей тестирования производительности является определение масштабируемости приложения под нагрузкой, при этом происходит:
- Измерение времени выполнения выбранных операций при определенных интенсивностях выполнения этих операций.
- Определение количества пользователей одновременно работающих с приложением.
- Определение границ приемлемой производительности при увеличении нагрузки (при увеличении интенсивности выполнения этих операций).
- Исследование производительности на высоких, предельных, стрессовых нагрузках.
Стрессовое тестирование (Stress Testing)
Стрессовое тестирование позволяет проверить, насколько приложение и система в целом работоспособны в условиях стресса и также оценить способность системы к регенерации, т.е. к возвращению к нормальному состоянию после прекращения воздействия стресса. Стрессом, в данном контексте, может быть повышение интенсивности выполнения операций до очень высоких значений или аварийное изменение конфигурации сервера. Также одной из задач при стрессовом тестировании может быть оценка деградации производительности, таким образом, цели стрессового тестирования могут пересекаться с целями тестирования производительности.
Объемное тестирование (Volume Testing)
Задачей объемного тестирования является получение оценки производительности при увеличении объемов данных в базе данных приложения, при этом происходит:
- Измерение времени выполнения выбранных операций при определенных интенсивностях выполнения этих операций.
- Может производиться определение количества пользователей одновременно работающих с приложением.
Тестирование стабильности или надежности (Stability / Reliability Testing)
Задачей тестирования стабильности (надежности) является проверка работоспособности приложения при длительном (многочасовом) тестировании со средним уровнем нагрузки. Время выполнения операций может играть в данном виде тестирования второстепенную роль. При этом, на первое место выходит отсутствие утечек памяти, перезапусков серверов под нагрузкой и другие аспекты влияющие именно на стабильность работы.
Инструментом для проведения нагрузочного тестирования является Apache Jmeter.
«Зачем нужны тестировщики, если команда разработчиков не пишет баги» от GeekBrains
Длительность: 1,5 часа.
Формат обучения: короткий вебинар.
Программа обучения: курс расскажет об особенностях работы тестировщика и о необходимости присутствия специалиста в компании
Также уделяется внимание психологии и нюансам взаимодействия с командой разработчиков. Программа рассчитана на слушателей, имеющих хотя бы минимальный опыт и знания в сфере тестирования
Что узнаете:
- Цель тестирования ПО, а также почему не может быть идеального продукта.
- Как организовать продуктивную работу команды разработчиков и тестировщиков.
- В чём заключается разница между тестированием и контролем качества.
Плюсы:
- Запись вебинара сохраняется после трансляции.
- Чат для обмена опытом с другими участниками.
- Полезные методики и материалы.
- Преподаватели с большим опытом.
- Много живых примеров.
Минусы:
Методики тестирования на проникновение
- The Open Web Application Security Project («OWASP») Testing Guide v4;
- Open Source Security Testing Methodology Manual («OSSTMM») v3;
- Technical Guide to Information Security Testing and Assessment (SP 800-115);
- ISACA IS auditing procedure «Security assessment-penetration testing and vulnerability analysis»;
- Penetration Testing Execution Standard («PTES»);
- A Penetration Testing Model («BSI»);
- Payment Card Industry («PCI») Data Security Standard («DSS») Guidance: PCI Information Supplement: Penetration Testing Guidance v3.2 April 2016;
- Federal Risk and Authorization Management Program («FedRAMP»): FedRAMP Penetration Test Guidance 1.0.1.
«Тестирование ПО: подготовка к сертификации ISTQB Foundation» от Stepik
Длительность: 32 урока.
Формат обучения: изучение теории, выполнение домашних заданий и тестов для самопроверки.
Программа обучения: за основу взята программа «Сертифицированный тестировщик ПО. Базовый уровень» от ISTQB, только здесь информация представлена в сжатом виде. Материал содержит реальные примеры тестов с сертифицированных экзаменов. Курс подойдёт слушателям, которые хотя бы поверхностно разбираются в принципах разработки ПО. Большим плюсом будет опыт работы тестировщиком.
Какие знания и навыки получите:
- Понимание специфики и необходимости тестирования.
- 7 базовых принципов тестирования.
- Модели разработки ПО.
- Типы и уровни тестирования.
- Выбор методов тестирования.
- Планирование, организация, оценка тестирования.
- Применение инструментов для тестирования.
Плюсы:
- Небольшой объём информации.
- Качественная теоретическая база.
- Структурированные уроки.
- Полезные ссылки на дополнительный материал.
- Много практических упражнений.
Минусы:
💰 На правах рекламы. «Тестировщик программного обеспечения» от SkillFactory 💰
Продолжительность курса: 8 месяцев = 336 часов на изучение всех материалов.
Программа обучения:
- Поступление на стажировку.
- Знакомство с продуктом.
- Кофе-брейк.
- Первый оффер.
- Автотесты на Python.
- Новый проект.
- Будни QA-инженера.
Чему научитесь:
- Писать тест-кейсы и тест-сценарии
- Проводить кроссбраузерное тестирование
- Писать запросы на SQL
- Верстать на HTML и CSS
- Работать с Github
- Объектно-ориентированному программированию
- Писать код на Python
- Работать с REST API
- Автоматизировать тестирование при помощи Selenium и PyTest
- Управлять проектами
- Работать в команде
- Упор на практику
- Готовое портфолио по окончании обучения — 30 тест-сценариев и 100+ автотестов
- Персональный ментор с опытом тестирования более 4 лет каждому студенту
- Гарантированная помощь в трудоустройстве
- Выпускники SkillFactory работают в «СберБанке», «Рамблере», Cisco, Home Credit Bank, «Ростелеком», Softline, Skyeng, «Альфа-Банке», Nvidia, «МегаФон», OZON, «МТС», Henkel
Выберите тег:
DevOps
(21)
автоматизация
(20)
тестирование
(15)
testing
(13)
python
(12)
web-приложения
(11)
разработка
(10)
инструменты тестирования
(8)
безопасность
(7)
процессы
(7)
TeamCity
(6)
selenium
(6)
DevSecOps
(5)
continuous integration
(5)
xPath
(5)
девопс
(5)
тесты
(5)
Test Tool
(4)
WebDriver
(4)
нагрузка
(4)
GUI
(3)
JMeter
(3)
PriceGenerator
(3)
auth
(3)
automation
(3)
candlestick
(3)
ci
(3)
forex
(3)
history
(3)
pandas
(3)
pip
(3)
stock
(3)
анализ
(3)
билд-конфигурации
(3)
митап
(3)
моделирование
(3)
план
(3)
планирование
(3)
тест-план
(3)
функциональные тесты
(3)
HTTP
(2)
IDE
(2)
OWASP
(2)
Positive Technologies
(2)
api
(2)
application inspector
(2)
best practices
(2)
crawler
(2)
dependencies
(2)
development
(2)
git
(2)
github
(2)
headers
(2)
load testing
(2)
mind-map
(2)
opdevops
(2)
интеллект-карта
(2)
карта
(2)
компетенции
(2)
конвейер
(2)
нечеткие шкалы
(2)
оценка качества
(2)
сканер ИБ
(2)
скриншот
(2)
управление
(2)
уязвимости
(2)
фреймворк для тестирования
(2)
шаблоны
(2)
AVStockParser
(1)
Alpha Vantage
(1)
CRUD
(1)
Crawljax
(1)
DevOpsHQ
(1)
Linux
(1)
MT4ForexParser
(1)
Meta-Runners
(1)
MetaTrader 4
(1)
Nginx
(1)
Op!DevOps!
(1)
PT AI
(1)
PlantUML
(1)
RobotFramework
(1)
Yandex.Tank
(1)
allpairs
(1)
analyse
(1)
appsec
(1)
aptly
(1)
architect
(1)
autoit
(1)
basic auth
(1)
boomstarter
(1)
brainstorming
(1)
bruter
(1)
bug
(1)
build
(1)
cd
(1)
codacy
(1)
code
(1)
commit
(1)
configuration
(1)
debrifing
(1)
defect
(1)
deploy
(1)
diagram
(1)
digest auth
(1)
form-based
(1)
gantt
(1)
git extension
(1)
gitlab
(1)
hook
(1)
hst
(1)
html
(1)
httest
(1)
httpbin
(1)
infrastructure
(1)
integrity
(1)
logins
(1)
lxml
(1)
management
(1)
meetup
(1)
modeling
(1)
multi-threads
(1)
neural network
(1)
osg
(1)
pairwise
(1)
paralleling
(1)
passwords
(1)
phantom
(1)
pre-commit
(1)
process
(1)
proxy
(1)
pyzo
(1)
release
(1)
request
(1)
response
(1)
rsa
(1)
schemas
(1)
scp
(1)
screenshot
(1)
secdev
(1)
security
(1)
security scanner
(1)
service
(1)
ssh
(1)
static
(1)
strategy
(1)
templates
(1)
test-plan
(1)
testrun
(1)
triggers
(1)
uml
(1)
unit-test
(1)
vulnerabilities
(1)
windows
(1)
yandex-tank
(1)
ЗУН
(1)
Яндекс.Танк
(1)
авторизация
(1)
агрегирование
(1)
архитектура
(1)
аутентификация
(1)
баги
(1)
безопасная разработка
(1)
брутер
(1)
брутфорс
(1)
бумстартер
(1)
вектор признаков
(1)
генератор сайтов
(1)
генератор цен
(1)
гитлаб
(1)
графики
(1)
дефекты
(1)
диаграммы
(1)
доставка
(1)
зависимости
(1)
зависимые конфигурации
(1)
знания
(1)
измерительные шкалы
(1)
инженер
(1)
инженеры
(1)
история
(1)
история математики
(1)
как писать
(1)
карьера
(1)
классификация
(1)
классы
(1)
ключевая пара
(1)
книга
(1)
код
(1)
контроль целостности
(1)
конференция
(1)
краулер
(1)
критерии качества
(1)
логины
(1)
математика
(1)
менеджмент
(1)
мета-раннер
(1)
методы
(1)
метрики качества
(1)
многопоточность
(1)
мозговой штурм
(1)
навыки
(1)
нейросети
(1)
опдевопс
(1)
оргвопросы
(1)
пароли
(1)
питон
(1)
попарное тестирование
(1)
попарный анализ
(1)
постмортем
(1)
происшествия
(1)
разбор полётов
(1)
разделение элементов
(1)
распараллеливание
(1)
рассказ
(1)
ревизия кода
(1)
репозитории
(1)
сервис
(1)
сканер кода
(1)
сравнение сканеров безопасности
(1)
структура
(1)
схемы
(1)
тексты
(1)
терминология
(1)
тест-раны
(1)
тестовая процедура
(1)
технические статьи
(1)
техпроцессы
(1)
типы тестов
(1)
триггеры
(1)
умения
(1)
учебник
(1)
учёные
(1)
целостность
(1)
юнит-тесты
(1)
Результаты работ
- Перечень выявленных уязвимостей, слабостей, ошибок настройки средств защиты с подробным описанием причин возникновения, вероятности и последствий эксплуатации, оценкой критичности, рекомендациями по устранению.
- Описание методов и сценариев атак с подтверждениями успешности их проведения и достигнутых результатов.
- План мероприятий по устранению выявленных уязвимостей, включающих в себя внесение изменений в принятые организационные меры, внесение изменений ПО, установку необходимых обновлений, изменение настройки применяемых средств защиты или ввод в эксплуатацию дополнительных.
Инструменты разработчика
Инструменты разработки позволяют:
- Просматривать элементы соответствующие определённому HTML коду (например, какой-нибудь заголовок).
- Получить общий CSS используемый на странице и какой CSS применяется к элементу.
- Модифицировать CSS в реальном времени и визуально увидеть ваши изменения в браузере.
- Увидеть HTTP запросы, производимые браузером.
- Запускать JavaScript код в середине содержимого страницы.
- Определять узкие места в производительности и производить её измерение.
- Изменять ресурсы оффлайн, чтобы понять какие данные, что запрашивает страница, хранятся локально.
Инструменты разработчика можно открыть с помощью кнопки F12 или «Дополнительные инструменты ➤ Инструменты разработчика». Также можно правой кнопкой мыши выбрать «Исследовать элемент в контекстном меню».
Инспектор — позволяет видеть HTML-код и CSS, который применён к каждому элементу на странице. Также позволяет в реальном времени редактировать как HTML, так и CSS. Внесённые изменения можно увидеть непосредственно в окне браузера.
Консоль — инструмент, где выводятся сообщения и ошибки JavaScript, CSS и другие. Она позволяет загружать JavaScript вопреки порядку загрузки скрипта в браузере и докладывает об ошибках, как только браузер пытается выполнить Ваш код.
Отладчик JavaScript — инструмент для отладки JavaScript, если он не работает, как ожидалось. Он позволяет Вам загружать JavaScript вопреки порядку загрузки скрипта в браузере и докладывает об ошибках, как только браузер пытается выполнить код.
Сеть — записывает и отображает сетевые запросы в любое время, когда панель инструментов открыта, даже если сам монитор сети не выбран. Отображает запросы, методы, статус коды, объем данных.
Заголовки — перечислены основные сведения о запросе, в том числе:
- URL-адрес запроса.
- Метод запроса.
- Удаленный IP-адрес и порт.
- Код состояния.
- HTTP-запросы и заголовки ответов, которые были отправлены.
Куки — перечислены все сведения о любых файлах cookie, отправленных с запросом или ответом.
Параметры — перечислены все параметры отправленные с запросом.Ответ — отображается ответ пришедший на запрос в определенном формате данных.
Тайминги — представлен более подробный аннотированный вид временной шкалы для каждого запроса, показывающий время выполнения.
Режим адаптивного дизайна — позволяет проверить сайт при разных разрешениях и сделать скриншот.
Тестирование безопасности
Что проверяем?
- Пользователь не может авторизоваться: под старым паролем, заблочен в сервисе, достиг лимита авторизаций, ввел чужой код верификации.
- Страницы, содержащие важные данные (пароль, номер кредитной карты и CVC, ответы на секретные вопросы и т. п.) открываются через HTTPS (SSL).
- Пароль скрыт астерисками на страницах: регистрация, «забыли пароль», «смена пароля».
- Корректное отображение сообщений об ошибках.
- Завершение сесcии после разлогина.
- Доступ к закрытым разделам сайта.
- SQL-инъекции.
- Cross-Site Scripting (XSS) уязвимости.
- HTML-инъекции.
- Cookie должны храниться в зашифрованном виде.
- Роли пользователей и доступ к контенту.