OWASP ZAPを介してrest-apiをテストすることは可能ですか?攻撃するURLは、GETリクエストに対してのみ機能しました。
たとえば、私のAPIコントローラーはトークンのみで動作します。 TokenControllerがあり、このコントローラーにはPOST JSONデータ経由のデータにはパスワードとログインが含まれています。OWASP経由でこのコントローラーをテストできますか?
OWASPZAPを使用してAPItestintを自動化することは可能ですが、テストを実行するには、2つのオプションがあります。たとえば、OpenAPI forZAPが情報の抽出を検討するなどの使用パターンを提供します。 2番目のオプションは、自動テストを実行して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();
}