Kraken
  • 🐙Привет!
    • 👋Добро пожаловать!
  • ✏️Крупицы знаний
    • 🌚Общие статьи
      • Как установить Kali Linux
      • Как поставить виртуальную Kali Linux
      • Что такое CVE
      • Обзор популярных алгоритмов хеширования
      • Модель OSI
      • Какие есть алгоритмы шифрования
      • Что такое TCP/IP
      • HSTS
      • Что такое хеширование и как его используют в ИБ
      • Скрипт для проверки данных SSL-сертификата
      • Шифруем файлы на Kali Linux с помощью OpenSSL
      • Как работает WPA2
      • О протоколе FTP
      • Что такое CVSS
      • Что такое политика одного источника (SOP)
      • О Cross-Origin Resource Sharing (CORS)
      • О Content Security Policy (CSP)
      • Что такое Bash
      • Веб-сокеты
      • MITRE ATT&CK
      • Начало в OSINT
      • Особенности и подходы к тестированию мобильных приложений
      • Что такое REST
      • Что такое API
      • Сравнение безопасности среды iOS и Android
      • CSS в ИБ
    • 🎪Карьера
      • Какие бывают роли у пентестеров и в чем их смысл
      • Какие есть виды пентеста
      • Что входит в пентест
      • Какие есть области знаний в веб-пентесте
      • Главные ошибки новичков в ИБ
    • 😰Уязвимости
      • Об атаке Pastejaking
      • Об уязвимости KRACK
      • Об уязвимости Regex DoS
      • Об атаке MITM
      • Что такое уязвимость нулевого дня
      • Атака на протокол STP
      • Защита протокола STP
      • Clickjacking
      • База при атаке на Wi-Fi
      • Атаки по сторонним каналам
      • DNS ребайндинг
    • ⚙️Инструменты
      • Лучшие сканеры открытых портов и инструменты проверки портов
      • Что такое OWASP ZAP и как он помогает защитить приложения?
      • О фреймворке WiFi Exploitation Framework (WEF)
      • WeBaCoo — поддерживаем доступ к взломанному веб-серверу
      • Socialscan — проверяем использование электронной почты и имен пользователей в соцсетях
      • Обзор инструментов Red Team
      • 11 инструментов для сканирования уязвимостей
      • Подборка инструментов для автоматизации атак на JWT
      • О Bulk_Extractor
      • О Unicornscan
      • О Maryam
      • О Picocrypt, утилите для шифрования данных
      • Анализируем трафик с ZUI (Zed User Interface)
      • Об инструменте SkipFish
      • Как получить уведомления на почту о входе по SSH
      • О сканере OpenSCAP
      • О Censys — инструменте для поиска уязвимых поддоменов
      • О Scanless — инструменте для анонимного сканирования открытых портов
      • О SearchSploit — инструменте для поиска эксплойтов
      • Выбираем менеджер паролей
      • О Maltego
      • Устанавливаем и используем Snyk CLI в Windows
      • Проверяем безопасность Docker-образов с помощью Trivy
      • Об инструменте SpiderFoot
      • Сканируем сети с помощью скриптов Bash
      • О фреймворке Volatility на Windows
      • Определяем тип WAF с помощью WafW00f
      • Об инструменте ReNgine
      • О Foremost — инструменте для восстановления данных
      • Chisel — инструмент для проброса портов
      • O Yersinia
      • Об Acunetix
      • O Netcat
      • O Samba
      • O John the Ripper
      • О Common User Passwords Profiler (CUPP)
      • О RainbowCrack
      • Shodan
      • MobSF
      • Netsparker
      • Fortify
      • Veracode
      • Rapid7 InsightVM
      • Aircrack-ng
  • 🛠️ИНСТРУМЕНТЫ
    • ⌨️Беспроводные атаки
      • Aircrack-Ng
    • 🔑Атаки на пароли
      • Crunch
      • John
      • CUPP
      • Hashcat
      • Hydra
    • 👁️Сбор Информации
      • Masscan
      • Dnsenum
      • Parsero
      • Nmap
  • 👨‍💻Пентест
    • Методология
    • 🖥️Аппаратный/Физический доступ
      • Физические атаки
      • Побег из КИОСКа
  • 👾MITRE
    • 🗺️Тактики
      • 🏢Предприятия
        • Разведка
      • 📱Мобильные устройства
      • 🏭ICS
    • 💀CTI
      • ☠️Группы
        • admin@338
        • Ajax Security Team
        • ALLANITE
        • Andariel
  • 📟Справочник по безопасной разработке
    • 👨‍🔬CLIENT SIDE
      • Cross-Site Scripting [XSS]
      • Cross-Site Request Forgery [CSRF]
      • Clickjacking
      • Open Redirects
    • 🖥️SERVER SIDE
      • SQL Injections [SQLi]
      • XML External Entity Injection [XXE]
      • OS Command Injection [Command Execution]
      • File Upload
      • Server-Side Request Forgery [SSRF]
      • Host Header Injection
      • Аутентификация
      • Directory Traversal
      • Template Injection [SSTI]
    • API
  • 🐝OWASP
    • Cross Site Scripting (XSS)
Powered by GitBook
On this page
  • Какие у REST принципы
  • Зачем нужен этот архитектурный стиль
  • Что REST даёт для кибербезопасности
  1. Крупицы знаний
  2. Общие статьи

Что такое REST

В этой статье разберем, в чем особенности этого архитектурного стиля и как он поможет помочь при безопасной разработке.

Representational State Transfer — архитектурный стиль программирования для распределенных систем, в частности для веб-сервисов и веб-API. Концепцию REST ввёл Рой Филдинг в его диссертации в 2000 году. REST описывает ряд принципов и ограничений, которые делают веб-сервисы проще, легче и более масштабируемыми.

Какие у REST принципы

  1. Безсостояние (Statelessness). Каждый запрос от клиента к серверу должен содержать всю необходимую информацию для обработки запроса. Сервер не должен сохранять контекст клиента между запросами.

  2. Единообразие интерфейса (Uniform Interface). Rдиный интерфейс между клиентом и сервером упрощает и декапсулирует архитектуру сервиса. Это облегчает взаимодействие клиента с сервером.

  3. Кеширование (Cacheability). Ответы сервера должны быть неявно или явно помечены как кэшируемые или нет. Кеширование может уменьшить время отзыва и повысить производительность системы.

  4. Клиент-серверная архитектура (Client-Server). Это разделение интересов подразумевает, что, например, пользовательский интерфейс размещен на клиентской стороне, а управление данными — на серверной. Такое разделение упрощает разработку и масштабирование.

  5. Многоуровневая система (Layered System). Клиент, который заходит на RESTful веб-сервис, не может знать, непосредственно общается он с конечным сервером, или с промежуточным уровнем (например, прокси сервером или балансировщиком нагрузки).

  6. Код по требованию (optional). Серверы могут временно расширять или настраивать функционал клиента, передавая ему исполняемый код, например, скрипты. Этот принцип является необязательным.

В контексте веб-API, RESTful сервисы предполагают использование стандартных HTTP-методов (GET, POST, PUT, DELETE и т.д.) для выполнения операций над ресурсами, которые идентифицируются посредством URI.

Например, в RESTful API для ведения блога, URI может представлять конкретную статью, а HTTP-методы могут использоваться для чтения (GET), создания (POST), изменения (PUT) или удаления (DELETE) этой статьи.

Зачем нужен этот архитектурный стиль

REST для веб-API — это хорошее решение многих задач разработки веб-сервисов, которые дают интерактивность, эффективность и доступность на различных платформах и устройствах. Давайте чуть подробнее о плюсах:

  • Разграничение клиентской и серверной сторон упрощает расширение систем.

  • Использование стандартных HTTP-методов позволяет легко взаимодействовать с ресурсами API на разных платформах.

  • API и клиенты могут разрабатываться параллельно и на разных языках программирования.

  • REST облегчает подключение различных сервисов и сторонних систем благодаря четко определенным интерфейсам.

  • Многоуровневая архитектура скрывает внутренности системы и облегчает контроль доступа.

Что REST даёт для кибербезопасности

Есть несколько опосредованных вещей, которые важны для контекста ИБ. И хотя REST сам по себе не решает все задачи безопасности, аспекты дизайна могут помочь создать более безопасную среду для обработки данных и взаимодействия приложений.

  1. Здесь используют понятный и универсальный набора HTTP операций (GET, POST, PUT, DELETE). Это упрощает более строгий контроль доступа и проведение аудита безопасности взаимодействий с веб-сервисами.

  2. В каждом запросе передается вся необходимая информация, что определяет отсутствие необходимости хранения сведений о состоянии пользователя на сервере. Это снижает риск утечки пользовательских данных при возможной атаке на сервер.

  3. Строгая структура ресурсов и URL позволяет точно определить, какие операции допустимы, что упрощает реализацию политик безопасности и управление доступом.

  4. Поскольку ответы от сервера могут быть кешированы, это снижает количество прямых запросов к серверу, ограничивая таким образом векторы атак и снижая риск DoS-атак.

  5. Клиенты общаются с API, не зная о структуре ведущей системы, что затрудняет потенциальным злоумышленникам выполнение целенаправленных атак на конкретные компоненты системы.

  6. REST часто использует HTTPS, который предоставляет шифрование и аутентификацию данных, повышая тем самым общую безопасность взаимодействий между клиентом и сервером.

Last updated 1 year ago

✏️
🌚