# ПРОЦЕССЫ Ресурсы Цикл разработки ПО Waterfall RUP Agile Kanban Управление Теория ограничений АНАЛИЗ Ресурсы ПО для Аналитика Кто аналитики? Бизнес-процесс Требования Уровни и типы Источники Стейкхолдеры Нотации Vision (Концепция) Сервисы АРХИТЕКТУРА Ресурсы ПО для Архитектора Кто архитекторы? Архитектурные слои язык Archimate GAP-анализ SOA Типы интеграции Solution Design (Проектное решение) DDD Микросервисы и service mesh ESB HTTP/REST RPC DevOps CI/CD/CDP VM и Docker Контракты API Оценка задачи git Frontend Apache Регулярка Linux ТЕСТИРОВАНИЕ Ресурсы QA и QC Цикл тестирования Уровни тестирования Виды тестирования Баг-репорт Шаблоны Тестирование требований Тест-анализ Тест план Тест дизайн Android Автотесты Selenium XPATH Генератор ИНН Безопасность Нагрузочное ДАННЫЕ Ресурсы MDM Big data Об информации SQL intro MongoDB intro БИБЛИОТЕКА Курсы Системная инженерия Сознание, интеллект Политэкономия Сумма технологии Экстраполяция в будущее Красивые диаграммы Арт
Эта страница:
Ресурсы Инструменты Попрактиковаться во взломах Строки для полей ввода Об аутентификации
Другие страницы:
ТЕСТИРОВАНИЕ Тестирование требований Тест-анализ Тест план Тест дизайн Android Автоматизация Selenium WebDriver XPATH Генератор ИНН и т.п. Различные расчёты Безопасность Нагрузочное
Другие разделы:
# АНАЛИЗ АРХИТЕКТУРА ДАННЫЕ DevOps БИБЛИОТЕКА ПРОЦЕССЫ ТЕСТИРОВАНИЕ
Тестирование безопасности
last update: 17-09-2020, 09:15
Ресурсы

Финтех

Инструменты
Попрактиковаться во взломах
Строки для полей ввода
A~`@#$%^&*_+}{|":?>/>АЯ<!"№;)(-=\'or][,.Z "><script>alert(document.cookie)</script><" "><a onmouseover=alert(document.cookie)>xxs link</a><" ' and 'x'='x ' OR a='1' <? php phpinfo(); ?> {${phpinfo()}}

Концептуальная модель информационной безопасности:

Концептуальная модель информационной безопасности
Об аутентификации

Cookie-based authentication, обычный сценарий:

  1. клиент отправляет на host.com/login имя и пароль
  2. сервер создаёт сессию и SESSIONID
  3. сервер проверяет валидность имени и пароля
  4. если всё хорошо, записывает в сессию признак, что клиент аутентифицировался
  5. отправляет клиенту результат и сессионную куку (SESSIONID)
  6. клиент в следующем значимом запросе отправляет эту куку
  7. сервер поднимает сессию по куке и проверяет есть ли в ней признак аутентификации, то есть отправлял ли клиент валидные аутентификационные данные
  8. если всё ок, то запрос выполняется

Token-based authentication (JSON Web-Tokens, OAuth, OpenID):

  1. на метод логина отправляем данные (по сути это не логин, а создание нового токена, POST /tokens, если удобно).
  2. проверяем логин-пароль, если все ок — отдаем сущность нового токена, которым затем Клиент подписывает каждый запрос.
  3. при последующих запросах просто проверяем наличие переданного токена в HEADERе запроса токена, достаём из токена идентификатор пользователя.
    это не ломает stateless, токен такая же сущность, что и статья и другие, и если они не найдены — возвращаем ошибку, либо работаем с ними, если все ок.
  4. чтобы сделать логаут — DELETE /tokens/{token}

Cookie sessionid представляет из себя строку, определяемую логикой сервера, в то время как token генерируется согласно стандарту.
Сервер может делиться токенами с третьей стороной (third party applications)