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

/ АНАЛИЗ АРХИТЕКТУРА ДАННЫЕ DevOps Gaming Библиотека ПРОЦЕССЫ ТЕСТИРОВАНИЕ: + ТЕСТИРОВАНИЕ + Тестирование требований + Тест-анализ и тест дизайн + Импакт-анализ в тестировании + API, интеграционное и E2E + Тест план + Метрики качества + Android + Автоматизация + Selenium WebDriver + XPATH + Генератор случайных данных + Различные расчёты - Безопасность | Ресурсы | Инструменты | Попрактиковаться во взломах | Строки для полей ввода | Об аутентификации + Нагрузочное
Тестирование безопасности
latest update of the page: 19-09-2023, 17:32 UTC
Ресурсы

Финтех

Инструменты
Попрактиковаться во взломах
Строки для полей ввода
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)