Owasp Zap Testing rest api

Возможно ли тестирование rest-api через OWASP ZAP? Урл для атаки работал только для запросов GET.

Owasp Zap Testing rest api

Например, мои контроллеры api работают только с токеном. У меня есть TokenController, и этот контроллер требует данных POST через данные JSON, включая пароль и логин. Могу ли я как-нибудь протестировать этот контроллер через OWASP?

Как вы в конце концов это поняли? С помощью owasp zap в docker env, как в ответе ниже?

achahbar 08.01.2019 11:27
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
1
11 312
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Короткий ответ: да. Длинный ответ - это сложно :)

Тестирование REST API немного сложнее, чем тестирование веб-API - вам нужно будет предоставить Zap информацию о вашем API - какие конечные точки у него есть, параметры и т. д. Не могли бы вы рассказать больше о своем API? Есть ли у него документ OpenAPI / Swagger? Есть ли у вас существующие тесты? Вы можете использовать любой из них для этой задачи.

Я рассказал о том, как этого можно достичь - вы можете найти запись здесь.

означает ли это, что автоматическое тестирование невозможно?

Сергей 06.08.2018 13:34

У вас есть определение вашего API? Если да, то взгляните на github.com/zaproxy/zaproxy/wiki/ZAP-API-Scan. Если нет, есть ли у вас какие-нибудь завершающие тесты? Если у вас их тоже нет, то любому автоматизированному инструменту будет сложно изучить ваш API.

Simon Bennetts 06.08.2018 13:58

Да, как сказал Саймон :) Если вы хотите использовать существующие тесты, вы можете следовать этому руководству: github.com/Soluto/owasp-zap-glue-ci-images

Omer Levi Hevroni 06.08.2018 14:02

Можно ли сканировать api только через owasp zap, запущенный на докере? Я развернул это, следуя этому руководству. kasunkodagoda.com/2017/09/03/… Внутри виртуальной машины, которая запускает программу owasp zap.

achahbar 08.01.2019 10:57

Можно автоматизировать тестирование API с помощью OWASP ZAP, но для выполнения тестов я вижу два варианта: Предложить некоторый шаблон использования, например, OpenAPI для ZAP рассмотрите возможность извлечения информации. И второй вариант - запустить автоматический тест, чтобы захватить ZAP как информацию о пассивном сканировании, и после этого вы можете проверить информацию о сеансе.

Мы рекомендуем использовать документацию OpenAPI. Тест с огурцом будет выглядеть так:

Feature: Security
  This feature is to test pokemon service security

  Scenario: Validate passive and active scan
    Given I import context from open API specification "/v2/api-docs"
    And I remove alerts
      | url                    |
      | http://.*/v2/api-docs* |
    And I import scan policy "javaclean" from file "javaclean.policy"
    When I run active scan
    And I generate security test HTML report with name "java-clean-security-report"
    Then the number of risks per category should not be greater than
      | low | medium | high | informational |
      | 0   | 0      | 0    | 0             |

Я разрабатываю шаг для ZAP, смотрите в GitHub: https://github.com/osvaldjr/easy-cucumber/wiki/Security-steps

Пример шага для импорта документов OpenAPI:

@Given("^I import context from open API specification \"([^\"]*)\"$")
  public void iImportContextFromOpenAPISpecification(String path)
      throws ClientApiException, InterruptedException {
    String url = getTargetUrl() + path;
    log.info("Import Open API from url: " + url);
    zapProxyApi.openapi.importUrl(url, null);

    waitPassiveScanRunning();
    verifyThatTheProxyHasCapturedHostInformation();
  }

Посмотреть другие шаги в: https://github.com/osvaldjr/easy-cucumber/blob/master/src/main/java/io/github/osvaldjr/stepdefinitions/steps/SecuritySteps.java

Другие вопросы по теме