
엔터프라이즈 보안 API 라이브러리로, Java 웹 애플리케이션에 인증, 접근 제어, 입력 검증, 출력 인코딩 및 암호화 작업 등의 보안 통제 기능을 제공하여 애플리케이션 위험을 줄입니다.
| OWASP® ESAPI(The OWASP Enterprise Security API)는 무료 오픈 소스 웹 애플리케이션 보안 제어 라이브러리로, 프로그래머가 더 낮은 위험의 애플리케이션을 더 쉽게 작성할 수 있게 해줍니다. Java용 ESAPI 라이브러리는 프로그래머가 기존 애플리케이션에 보안을 쉽게 추가(retrofit)할 수 있도록 설계되었습니다. Java용 ESAPI는 새로운 개발을 위한 견고한 기반 역할도 합니다. |
OWASP ESAPI 위키 페이지는 https://owasp.org/www-project-enterprise-security-api/에서 찾을 수 있습니다. ESAPI legacy GitHub 저장소에도 몇 가지 유용한 위키 페이지가 있습니다.
이는 ESAPI의 legacy 브랜치로, 프로젝트의 적극적으로 유지보수되는 브랜치이지만 이 브랜치에 대한 중요한 *새* 기능 개발은 *이루어지지 않을* 것입니다. 이미 2.x 브랜치에 예정된 기능은 계속 진행됩니다. GitHub 저장소는 [https://github.com/ESAPI/esapi-java-legacy](https://github.com/ESAPI/esapi-java-legacy)에 있습니다.
중요 사항: ESAPI legacy의 기본 브랜치는 이제 'develop' 브랜치입니다(이전의 'main'(구 'master') 브랜치가 아님). 향후 개발, 버그 수정 등은 'develop' 브랜치에서 이루어집니다. 'main' 브랜치는 이제 "보호된" 상태로 표시되며, 최신 안정적인 ESAPI 릴리스(현재 기준 2.1.0.1)를 반영합니다. 기본 브랜치를 'develop'으로 변경한 것은 의도한 풀 리퀘스트에 영향을 줄 수 있습니다.
또한 ESAPI를 사용하기 위한 최소 기준 Java 버전은 Java 7입니다. (2.2.0.0 릴리스에서 Java 6에서 변경되었습니다.)
https://github.com/ESAPI/esapi-java
그러나 ESAPI 3에 대한 작업은 아직 본격적으로 시작되지 않았으며 가장 초기 계획 단계에 있습니다. 현재 존재하는 코드조차도 변경될 가능성이 높습니다.
ESAPI 릴리스 노트는 ESAPI의 "documentation" 디렉터리에서 찾을 수 있습니다. 일반적으로 "esapi4java-core-2.#.#.#-release-notes.txt"와 같은 이름을 가지며, "2.#.#.#"는 ESAPI 릴리스 번호(시맨틱 버전 사용)를 나타냅니다.
ESAPI 2.2.3.0부터 ESAPI는 기본적으로 'slf4j-simple'을 포함하고 AntiSamy 정책 파일에 대해 XML 스키마 검증을 수행하는 AntiSamy 버전을 사용합니다. ESAPI 2.2.3.0 릴리스 노트(최소한 시작 부분)를 반드시 읽어 ESAPI 사용에 영향을 줄 수 있는 중요한 사항을 확인하십시오! 경고했습니다!!!
최신 ESAPI 릴리스는 2.2.3.0입니다. 기본 구성 jar와 GPG 서명은 각각 esapi-2.2.3.0-configuration.jar 및 esapi-2.2.3.0-configuration.jar.asc에서 찾을 수 있습니다.
최신 일반 ESAPI jar는 Maven Central에서 사용할 수 있습니다.
그러나 ESAPI를 사용하여 새 프로젝트를 시작하기 전에 "Should I use ESAPI?"를 반드시 읽으십시오.
의도치 않게 실수하지 않는 한, "@deprecated"로 주석이 달린 클래스, 메서드 및/또는 필드는 최소 2년 또는 다음 주요 릴리스 번호(예: 현재 3.x) 중 먼저 도래하는 시점까지 제거하지 않고 유지할 계획입니다. 이 정책은 org.owasp.esapi.reference 패키지 아래의 클래스에는 적용되지 않습니다. 이러한 클래스를 코드에서 직접 사용할 것으로 예상되지 않습니다.
포크(fork)하고 풀 리퀘스트를 제출하세요! 아주 간단합니다! 일반적으로 버그 수정만 받아들입니다. legacy 프로젝트이므로 새로운 기능을 추가할 의도는 없지만 예외가 있을 수 있습니다. 새로운 기능을 제안하려면 아래에 언급된 ESAPI-DEV 메일링 리스트에서 논의하는 것이 가장 좋습니다. 모든 풀 리퀘스트는 코딩 스타일을 포함하여 검토합니다. 편집 중인 파일에서 사용된 것과 동일한 코딩 스타일을 사용하십시오.
ESAPI를 처음 접하는 경우 'good first issue'로 표시된 GitHub 이슈를 찾아보는 것이 좋습니다. (예를 들어, 해당 레이블이 있는 모든 열린 이슈를 찾으려면 https://github.com/ESAPI/esapi-java-legacy/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22를 사용하세요.)
자세한 내용은 'CONTRIBUTING-TO-ESAPI.txt' 파일에서 확인할 수 있습니다.
2014년 중반 ESAPI는 모든 코드를 GitHub로 마이그레이션했습니다. 이 마이그레이션은 2014년 11월에 완료되었습니다.
Google 코드의 모든 이슈는 GitHub 이슈로 마이그레이션되었습니다. JIRA/Confluence 인스턴스가 할당되어 있지만 GitHub 이슈와 동기화되도록 구성되지 않았으므로 사용해서는 안 됩니다. JIRA는 괜찮지만 GitHub 이슈(대부분의 사용자가 이슈를 보고하는 곳)와 동기화할 수 없다면 사용할 수 없습니다. 개발자로서 여러 버그 추적 사이트에서 이슈를 닫는 데 시간을 소비하고 싶지 않습니다. 따라서 이 동기화가 이루어질 때까지(GitHub 이슈 #371 참조) 버그 보고에는 GitHub만 사용하십시오.
이슈를 보고할 때는 명확하게 작성하고 ESAPI 개발 팀이 결과를 재현할 수 있는 충분한 정보를 제공하도록 노력하십시오. 아직 읽지 않았다면 이슈를 게시하기 전에 Eric S. Raymond의 고전 "How to Ask Questions the Smart Way"(http://www.catb.org/esr/faqs/smart-questions.html)를 읽는 것이 좋습니다.
버그를 발견했다면 esapi-legacy-java 저장소에 이슈를 생성하세요: https://github.com/ESAPI/esapi-java-legacy/issues
참고: GitHub 이슈를 ESAPI에 대한 질문에 사용하지 마십시오. 질문이 있으면 이 페이지 하단에 있는 2개의 메일링 리스트(현재 Google Groups)에 게시하십시오. GitHub 이슈에서 질문을 발견하면 단순히 닫고 해당 방법을 따르도록 안내할 것입니다.
ESAPI legacy에서 취약점을 발견했다면 먼저 이슈 목록(위 참조)에서 이미 보고되었는지 확인하십시오. 보고되지 않았다면 Kevin W. Wall(kevin.w.wall at gmail.com)과 Matt Seil(matt.seil at owasp.org)에게 직접 연락하십시오. 패치가 구현 및 배포되는 동안 사용자를 안전하게 보호하기 위해 GitHub 이슈나 ESAPI 메일링 리스트를 통해 취약점을 보고하지 마십시오. 취약점 발견에 대한 인정을 받고 싶다면 이 프로세스를 따르십시오. (향후 BugCrowd가 이를 처리하기를 원하지만 아직 시간이 걸립니다.) 또한 취약점을 설명하는 이메일을 보낼 때는 평소에 모니터링하는 이메일 주소를 사용하십시오.
자세한 내용은 'SECURITY.md' 파일에서 확인할 수 있습니다.
위키: https://owasp.org/www-project-enterprise-security-api/
야간 빌드: Travis CI - https://travis-ci.org/bkimminich/esapi-java-legacy
JIRA: https://owasp-esapi.atlassian.net/browse/ESAPILEG
이슈: 추후 공지가 있을 때까지 버그 보고 및 기능 개선 요청에는 GitHub 이슈를 사용하십시오.
문서: https://owasp-esapi.atlassian.net/wiki/display/ESAPILEG/ESAPI+Legacy (출시 예정), 현재는 'documentation/' 디렉터리 아래의 일반 문서와 https://www.javadoc.io/doc/org.owasp.esapi/esapi/의 최신 Javadoc을 참조하십시오.
IRC 채널을 통한 실시간 지원 (단, ESAPI 개발 팀이 참여하기를 원한다면 날짜/시간을 미리 이메일로 알려주십시오):
서버: irc.freenode.net
채널: #esapi
웹챗: https://webchat.freenode.net/
메일링 리스트: 2019년 3월 25일부로 ESAPI의 2개 메일링 리스트가 공식적으로 Mailman 메일링 리스트에서 Google Groups의 새 홈으로 이전되었습니다.
2개의 Google Groups 이름은 "esapi-project-users"와 "esapi-project-dev"이며, 각각 "Subscribe to ESAPI Users list" 및 "Subscribe to ESAPI Developers list"를 통해 구독한 후에 게시할 수 있습니다.
이전 Mailman 메일링 리스트(ESAPI-Users 및 ESAPI-Dev)의 이전 아카이브는 각각 https://lists.owasp.org/pipermail/esapi-users/ 및 https://lists.owasp.org/pipermail/esapi-dev/에서 계속 사용할 수 있습니다.
Google Groups 및 웹 인터페이스에 대한 일반적인 개요는 https://groups.google.com/forum/#!overview를 참조하십시오.
Google Groups 구독 및 구독 취소에 대한 도움말은 https://webapps.stackexchange.com/questions/13508/how-can-i-subscribe-to-a-google-mailing-list-with-a-non-google-e-mail-address/15593#15593를 참조하십시오.
OWASP는 OWASP Foundation, Inc.의 등록 상표입니다.