Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
spring-cloud__spring-cloud-gateway_CVE-2022-22947_3-0-6 — API 보안 테스트 및 취약점 분석을 위한 CVE-2022-22947 익스플로잇을 시연하는 Spring Cloud Gateway 리포지토리입니다. | Kitploit
도구/GitHubGitHub/shoucheng3/spring-cloud__spring-cloud-gateway_cve-2022-22947_3-0-6
Web Vulnerability ScannersVulnerability AnalysisExploitationAPI Security TestingWeb SecurityAPI Security
GitHubshoucheng3/spring-cloud__spring-cloud-gateway_cve-2022-22947_3-0-6

spring-cloud__spring-cloud-gateway_CVE-2022-22947_3-0-6

API 보안 테스트 및 취약점 분석을 위한 CVE-2022-22947 익스플로잇을 시연하는 Spring Cloud Gateway 리포지토리입니다.

저장소 보기
71년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

//// 이 파일을 편집하지 마십시오. 자동 생성되었습니다. 이 파일을 수동으로 변경하면 다시 생성될 때 손실됩니다. 대신 src/main/asciidoc/ 디렉토리의 파일을 편집하십시오. ////

image::https://circleci.com/gh/spring-cloud/spring-cloud-gateway/tree/master.svg?style=svg["CircleCI", link="https://circleci.com/gh/spring-cloud/spring-cloud-gateway/tree/master"] image::https://codecov.io/gh/spring-cloud/spring-cloud-gateway/branch/master/graph/badge.svg["Codecov", link="https://codecov.io/gh/spring-cloud/spring-cloud-gateway/branch/master"] image::https://api.codacy.com/project/badge/Grade/a6885a06921e4f72a0df0b7aabd6d118["Codacy code quality", link="https://www.codacy.com/app/spring-cloud/spring-cloud-gateway?utm_source=github.com&utm_medium=referral&utm_content=spring-cloud/spring-cloud-gateway&utm_campaign=Badge_Grade"]

이 프로젝트는 Spring 5, Spring Boot 2, Project Reactor를 포함한 Spring 생태계 위에 구축된 API 게이트웨이를 제공합니다. Spring Cloud Gateway는 API로 라우팅하고 보안, 모니터링/메트릭, 복원력과 같은 교차 관심사를 처리하는 간단하면서도 효과적인 방법을 제공하는 것을 목표로 합니다.

== 기능

  • Java 8
  • Spring Framework 5
  • Spring Boot 2
  • 동적 라우팅
  • Spring Handler Mapping에 내장된 라우트 매칭
  • HTTP 요청(경로, 메서드, 헤더, 호스트 등)에 대한 라우트 매칭
  • 일치하는 라우트로 범위가 지정된 필터
  • 필터는 다운스트림 HTTP 요청 및 HTTP 응답을 수정할 수 있음 (헤더 추가/제거, 매개변수 추가/제거, 경로 다시 쓰기, 경로 설정, Hystrix 등)
  • API 또는 구성 기반
  • 라우트 구성을 위한 Spring Cloud DiscoveryClient 지원

== 빌드

:jdkversion: 1.8

=== 기본 컴파일 및 테스트

소스를 빌드하려면 JDK {jdkversion}을 설치해야 합니다.

true <1> true <2> true <3> <4> io.spring.javaformat spring-javaformat-maven-plugin <5> org.apache.maven.plugins maven-checkstyle-plugin ---- <1> Checkstyle 오류 발생 시 빌드 실패 <2> Checkstyle 위반 발생 시 빌드 실패 <3> Checkstyle이 테스트 소스도 분석 <4> 대부분의 Checkstyle 형식 규칙을 통과하도록 코드를 재구성해 주는 Spring Java Format 플러그인 추가 <5> 빌드 및 보고 단계에 checkstyle 플러그인 추가 ---- org.basepom.maven duplicate-finder-maven-plugin ---- org.basepom.maven duplicate-finder-maven-plugin org.joda.time.base.BaseDateTime .*module-info changelog.txt

Spring Cloud는 대부분의 빌드 관련 활동에 Maven을 사용하며, 관심 있는 프로젝트를 복제한 후 다음을 입력하면 빠르게 시작할 수 있습니다.


$ ./mvnw install

참고: Maven (>=3.3.3)을 직접 설치하고 아래 예제에서 ./mvnw 대신 mvn 명령을 실행할 수도 있습니다. 그렇게 하는 경우 로컬 Maven 설정에 spring 사전 릴리스 아티팩트에 대한 저장소 선언이 포함되어 있지 않다면 -P spring을 추가해야 할 수도 있습니다.

참고: MAVEN_OPTS 환경 변수를 -Xmx512m -XX:MaxPermSize=128m과 같은 값으로 설정하여 Maven에 사용 가능한 메모리 양을 늘려야 할 수도 있습니다. .mvn 구성에서 이 부분을 다루려고 노력하고 있으므로, 빌드를 성공시키기 위해 이 작업을 해야 한다면 설정을 소스 제어에 추가할 수 있도록 이슈를 등록해 주십시오.

테스트를 위해 미들웨어(예: Redis)가 필요한 프로젝트는 일반적으로 로컬에 Docker 인스턴스가 설치되어 실행 중이어야 합니다.

=== 문서

spring-cloud-build 모듈에는 "docs" 프로파일이 있으며, 이를 활성화하면 src/main/asciidoc에서 asciidoc 소스를 빌드하려고 시도합니다. 이 과정의 일부로 README.adoc을 찾아 모든 include를 로드하여 처리하지만, 구문 분석이나 렌더링은 하지 않고 ${main.basedir}(기본값은 ${basedir}, 즉 프로젝트 루트)에 복사합니다. README에 변경 사항이 있으면 Maven 빌드 후 수정된 파일로 올바른 위치에 나타납니다. 변경 사항을 커밋하고 푸시하면 됩니다.

=== 코드 작업 IDE 선호도가 없다면, 코드 작업 시 https://www.springsource.com/developer/sts[Spring Tools Suite] 또는 https://eclipse.org[Eclipse]를 사용하는 것을 권장합니다. Maven 지원을 위해 https://eclipse.org/m2e/[m2eclipse] 이클립스 플러그인을 사용합니다. Maven 3.3.3 이상을 사용하는 한 다른 IDE와 도구도 문제 없이 작동해야 합니다.

==== Spring Maven 프로파일 활성화 Spring Cloud 프로젝트는 spring 마일스톤 및 스냅샷 저장소를 확인하기 위해 'spring' Maven 프로파일을 활성화해야 합니다. 선호하는 IDE를 사용하여 이 프로파일을 활성화하도록 설정하거나 빌드 오류가 발생할 수 있습니다.

==== m2eclipse로 Eclipse로 가져오기 Eclipse에서 작업할 때는 https://eclipse.org/m2e/[m2eclipse] 이클립스 플러그인을 권장합니다. m2eclipse가 아직 설치되지 않은 경우 "eclipse marketplace"에서 설치할 수 있습니다.

참고: 이전 버전의 m2e는 Maven 3.3을 지원하지 않으므로, 프로젝트를 Eclipse로 가져온 후에는 m2eclipse에 올바른 프로파일을 사용하도록 지시해야 합니다. 프로젝트의 POM과 관련된 다양한 오류가 표시되면 최신 버전의 m2e를 사용하고 있는지 확인하십시오. m2e를 업그레이드할 수 없는 경우 settings.xml에 "spring" 프로파일을 추가하십시오. 또는 상위 pom의 "spring" 프로파일에서 저장소 설정을 settings.xml에 복사할 수 있습니다.

==== m2eclipse 없이 Eclipse로 가져오기 m2eclipse를 사용하지 않으려면 다음 명령을 사용하여 이클립스 프로젝트 메타데이터를 생성할 수 있습니다:

[indent=0]

root@kitploit:~
$ ./mvnw eclipse:eclipse

생성된 이클립스 프로젝트는 파일 메뉴에서 기존 프로젝트 가져오기를 선택하여 가져올 수 있습니다.

== 기여

:spring-cloud-build-branch: master

Spring Cloud는 비제한적인 Apache 2.0 라이선스로 출시되며, 이슈 트래커에 Github 트래커를 사용하고 풀 리퀘스트를 master에 병합하는 매우 표준적인 Github 개발 프로세스를 따릅니다. 사소한 기여라도 주저하지 말고 기여해 주시되, 아래 지침을 따라 주십시오.

=== 기여자 라이선스 계약 서명 중요하지 않은 패치나 풀 리퀘스트를 수락하기 전에 https://cla.pivotal.io/sign/spring[Contributor License Agreement]에 서명해 주셔야 합니다. 기여자 계약에 서명한다고 해서 메인 저장소에 대한 커밋 권한이 부여되는 것은 아니지만, 귀하의 기여를 수락할 수 있으며, 수락할 경우 저작자 표시를 받게 됩니다. 활발한 기여자는 코어 팀에 합류하도록 요청받을 수 있으며, 풀 리퀘스트를 병합할 수 있는 권한을 부여받을 수 있습니다.

=== 행동 강령 이 프로젝트는 기여자 규약 https://github.com/spring-cloud/spring-cloud-build/blob/master/docs/src/main/asciidoc/code-of-conduct.adoc[행동 강령]을 준수합니다. 참여함으로써 귀하는 이 강령을 준수할 것에 동의합니다. 허용되지 않는 행동은 [email protected]로 신고해 주십시오.

=== 코드 규칙 및 정리 이 중 어느 것도 풀 리퀘스트에 필수는 아니지만, 모두 도움이 됩니다. 또한 원래 풀 리퀘스트 이후에는 추가할 수 있지만 병합 전에 추가할 수 있습니다.

  • Spring Framework 코드 형식 규칙을 사용하십시오. Eclipse를 사용하는 경우 https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-dependencies-parent/eclipse-code-formatter.xml[Spring Cloud Build] 프로젝트의 eclipse-code-formatter.xml 파일을 사용하여 포맷터 설정을 가져올 수 있습니다. IntelliJ를 사용하는 경우 https://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter Plugin]을 사용하여 동일한 파일을 가져올 수 있습니다.
  • 모든 새로운 .java 파일에 최소한 @author 태그(사용자 식별)와 클래스 용도에 대한 최소 한 문단의 간단한 Javadoc 클래스 주석이 있는지 확인하십시오.
  • 모든 새로운 .java 파일에 ASF 라이선스 헤더 주석을 추가하십시오(프로젝트의 기존 파일에서 복사).
  • 상당히 수정한(코스메틱 이상의 변경) .java 파일에 자신을 @author로 추가하십시오.
  • 일부 Javadoc과, 네임스페이스를 변경하는 경우 XSD 문서 요소를 추가하십시오.
  • 몇 가지 단위 테스트도 많은 도움이 됩니다. 누군가는 해야 합니다.
  • 다른 사람이 귀하의 브랜치를 사용하지 않는 경우, 현재 master(또는 메인 프로젝트의 다른 대상 브랜치)로 리베이스하십시오.
  • 커밋 메시지를 작성할 때는 https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[이 규칙]을 따르고, 기존 이슈를 수정하는 경우 커밋 메시지 끝에 Fixes gh-XXXX(XXXX는 이슈 번호)를 추가하십시오.

=== Checkstyle

Spring Cloud Build에는 일련의 checkstyle 규칙이 제공됩니다. spring-cloud-build-tools 모듈에서 찾을 수 있습니다. 모듈 아래에서 가장 주목할 만한 파일은 다음과 같습니다:

.spring-cloud-build-tools/

└── src    ├── checkstyle    │   └── checkstyle-suppressions.xml <3>    └── main    └── resources    ├── checkstyle-header.txt <2>    └── checkstyle.xml <1>

<1> 기본 Checkstyle 규칙 <2> 파일 헤더 설정 <3> 기본 억제 규칙

==== Checkstyle 구성

Checkstyle 규칙은 기본적으로 비활성화되어 있습니다. 프로젝트에 checkstyle을 추가하려면 다음 속성과 플러그인을 정의하기만 하면 됩니다.

.pom.xml

root@kitploit:~
<reporting>
    <plugins>
        <plugin> <5>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
        </plugin>
    </plugins>
</reporting>

일부 규칙(예: 줄 길이를 더 길게 해야 하는 경우)을 억제해야 하는 경우 ${project.root}/src/checkstyle/checkstyle-suppressions.xml 파일에 억제를 정의하면 됩니다. 예:

.projectRoot/src/checkstyle/checkstyle-suppresions.xml

${spring-cloud-build.rootFolder}/.editorconfig 및 ${spring-cloud-build.rootFolder}/.springformat을 프로젝트에 복사하는 것이 좋습니다. 그러면 일부 기본 형식 규칙이 적용됩니다. 다음 스크립트를 실행하여 수행할 수 있습니다:

root@kitploit:~
$ curl https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/.editorconfig -o .editorconfig
$ touch .springformat

=== IDE 설정

==== Intellij IDEA

Intellij를 설정하려면 코딩 규칙, 검사 프로파일을 가져오고 checkstyle 플러그인을 설정해야 합니다. 다음 파일은 https://github.com/spring-cloud/spring-cloud-build/tree/master/spring-cloud-build-tools[Spring Cloud Build] 프로젝트에서 찾을 수 있습니다.

.spring-cloud-build-tools/

└── src    ├── checkstyle    │   └── checkstyle-suppressions.xml <3>    └── main    └── resources    ├── checkstyle-header.txt <2>    ├── checkstyle.xml <1>    └── intellij       ├── Intellij_Project_Defaults.xml <4>       └── Intellij_Spring_Boot_Java_Conventions.xml <5>

<1> 기본 Checkstyle 규칙 <2> 파일 헤더 설정 <3> 기본 억제 규칙 <4> 대부분의 Checkstyle 규칙을 적용하는 Intellij 프로젝트 기본값 <5> 대부분의 Checkstyle 규칙을 적용하는 Intellij 프로젝트 스타일 규칙

.코드 스타일

image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-code-style.png[Code style]

File -> Settings -> Editor -> Code style로 이동합니다. Scheme 섹션 옆의 아이콘을 클릭합니다. 거기서 Import Scheme 값을 클릭하고 Intellij IDEA code style XML 옵션을 선택합니다. spring-cloud-build-tools/src/main/resources/intellij/Intellij_Spring_Boot_Java_Conventions.xml 파일을 가져옵니다.

.검사 프로파일

image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-inspections.png[Code style]

File -> Settings -> Editor -> Inspections로 이동합니다. Profile 섹션 옆의 아이콘을 클릭합니다. 거기서 Import Profile을 클릭하고 spring-cloud-build-tools/src/main/resources/intellij/Intellij_Project_Defaults.xml 파일을 가져옵니다.

.Checkstyle

Intellij에서 Checkstyle을 사용하려면 Checkstyle 플러그인을 설치해야 합니다. JUnit 어설션을 자동으로 변환하려면 Assertions2Assertj도 설치하는 것이 좋습니다.

image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-checkstyle.png[Checkstyle]

File -> Settings -> Other settings -> Checkstyle으로 이동합니다. Configuration file 섹션에서 + 아이콘을 클릭합니다. 여기서 checkstyle 규칙을 가져올 위치를 정의해야 합니다. 위 이미지에서는 복제된 Spring Cloud Build 저장소에서 규칙을 가져왔습니다. 그러나 Spring Cloud Build의 GitHub 저장소(예: checkstyle.xml의 경우 https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle.xml)를 가리킬 수도 있습니다. 다음 변수를 제공해야 합니다:

  • checkstyle.header.file - 복제된 저장소에 있는 Spring Cloud Build의 spring-cloud-build-tools/src/main/resources/checkstyle-header.txt 파일 또는 https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt URL을 가리키십시오.
  • checkstyle.suppressions.file - 기본 억제 파일. 복제된 저장소에 있는 Spring Cloud Build의 spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml 파일 또는 https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml URL을 가리키십시오.
  • checkstyle.additional.suppressions.file - 이 변수는 로컬 프로젝트의 억제 파일에 해당합니다. 예를 들어 spring-cloud-contract에서 작업 중인 경우 project-root/src/checkstyle/checkstyle-suppressions.xml 폴더를 가리킵니다. spring-cloud-contract의 예: /home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml.

중요: Checkstyle 규칙을 프로덕션 및 테스트 소스에 적용하므로 Scan Scope를 All sources로 설정하는 것을 잊지 마십시오.

=== 중복 찾기

Spring Cloud Build는 basepom:duplicate-finder-maven-plugin을 포함하고 있으며, 이 플러그인은 Java 클래스패스에서 중복 및 충돌하는 클래스와 리소스를 표시합니다.

==== 중복 찾기 구성

중복 찾기는 기본적으로 활성화되어 있으며 Maven 빌드의 verify 단계에서 실행됩니다. 그러나 프로젝트의 pom.xml build 섹션에 duplicate-finder-maven-plugin을 추가해야만 프로젝트에 적용됩니다.

.pom.xml [source,xml]

다른 속성의 경우 https://github.com/basepom/duplicate-finder-maven-plugin/wiki[플러그인 문서]에 나열된 기본값을 설정했습니다.

선택한 속성 앞에 duplicate-finder-maven-plugin을 붙여 값을 설정하면 쉽게 재정의할 수 있습니다. 예를 들어, 빌드에서 중복 검사를 건너뛰려면 duplicate-finder-maven-plugin.skip을 true로 설정합니다.

설정에 ignoredClassPatterns 또는 ignoredResourcePatterns를 추가해야 하는 경우, 프로젝트의 플러그인 구성 섹션에 추가하십시오:

[source,xml]


도구 다운로드