# Процессы Ресурсы Цикл разработки ПО 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: 27-01-2024, 09:53 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)