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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
apache-struts-cve-2017-9805 | Kitploit
도구/GitHubGitHub/rvermeulen/apache-struts-cve-2017-9805
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration TestingRed Teaming
GitHubrvermeulen/apache-struts-cve-2017-9805

apache-struts-cve-2017-9805

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
5년 전아직 검토되지 않음

The Apache Struts web framework

Build Status @ Jenkins Build Status @ Travis Maven Central License

Apache Struts 웹 프레임워크는 Java 웹 애플리케이션을 만들기 위한 무료 오픈소스 솔루션입니다.

웹 애플리케이션은 동적 응답을 생성할 수 있다는 점에서 기존의 웹사이트와 다릅니다. 많은 웹사이트는 정적 페이지만 제공합니다. 웹 애플리케이션은 데이터베이스 및 비즈니스 로직 엔진과 상호 작용하여 응답을 맞춤화할 수 있습니다.

JavaServer Pages 기반 웹 애플리케이션은 때때로 데이터베이스 코드, 페이지 디자인 코드, 제어 흐름 코드를 한데 섞어 놓기도 합니다. 실제로 이러한 관심사가 분리되지 않으면 대규모 애플리케이션은 유지 관리가 어려워진다는 것을 알 수 있습니다.

소프트웨어 애플리케이션에서 관심사를 분리하는 한 가지 방법은 Model-View-Controller(MVC) 아키텍처를 사용하는 것입니다. Model은 비즈니스 또는 데이터베이스 코드를 나타내고, View는 페이지 디자인 코드를 나타내며, Controller는 내비게이션 코드를 나타냅니다. Struts 프레임워크는 개발자가 MVC 아키텍처를 활용하는 웹 애플리케이션을 만들 수 있도록 설계되었습니다.

프레임워크는 세 가지 핵심 구성 요소를 제공합니다.

표준 URI에 매핑되는 애플리케이션 개발자 제공 “요청” 핸들러. 응답을 완료하는 다른 리소스로 제어를 전달하는 “응답” 핸들러. 개발자가 서버 페이지로 대화형 양식 기반 애플리케이션을 만들 수 있게 돕는 태그 라이브러리. 프레임워크의 아키텍처와 태그는 유행어(buzzword)를 잘 따릅니다. Struts는 기존의 REST 애플리케이션 및 SOAP, AJAX와 같은 기술과도 잘 작동합니다.

The Apache Struts Project

Apache Struts 프로젝트는 Apache Struts 프레임워크를 만들고 유지 관리하는 오픈소스 커뮤니티입니다. 이 프로젝트는 협력적이고 커뮤니티 기반의 오픈소스 개발에 관한 공통된 가치를 공유하는 다양한 자원봉사자들로 구성되어 있습니다. Apache Struts 프로젝트는 이러한 가치를 상위 조직인 Apache Software Foundation과 함께 공유하게 된 것을 자랑스럽게 생각합니다.

프로젝트 이름이 “Struts”인 이유는 프레임워크가 전문적인 애플리케이션 개발을 지원하는 “보이지 않는 기반”을 제공하기 위한 것이기 때문입니다. Struts는 표준 Java 플랫폼의 다양한 요소를 하나의 일관된 전체로 결합하는 접착제 역할을 합니다. 우리의 목표는 시간이 지나도 유지 관리하기 쉬운 엔터프라이즈급 애플리케이션을 만드는 데 필요한 누락된 부분을 생산하여 기존 표준을 활용하는 것입니다.

Apache Struts 프로젝트는 Struts 프레임워크의 두 가지 주요 버전을 제공했습니다. 현재는 Struts 2 버전만 유지 관리하고 있습니다. 모든 Struts 1.x 애플리케이션은 Struts 2로 업그레이드하는 것이 좋습니다. 더 이상 보안 패치를 발행하지 않으므로 Struts 1.x를 사용한 새로운 애플리케이션 개발을 시작하지 마십시오.

Struts 2는 원래 WebWork 2로 알려져 있었습니다. 수년간 독립적으로 작업한 후 WebWork와 Struts 커뮤니티는 힘을 합쳐 Struts 2를 만들었습니다. 2.x 프레임워크는 어려운 문제에 대한 우아한 해결책을 중요하게 여기는 팀에게 최고의 선택입니다.

Apache Struts를 사용해야 하는 이유는 무엇입니까?

Apache Struts는 현대적이고 유지 관리되는 완전한 기능을 갖춘 웹 프레임워크입니다. 수년간 존재해 왔으며 방대한 사용자 기반을 고려할 때 가까운 시일 내에 사라질 가능성은 낮습니다. 그뿐만 아니라 이 프로젝트에는 헌신적인 사용자와 개발자가 있습니다. Apache Struts는 Apache License 2.0에 따라 라이선스가 부여되며 이는 변경되지 않습니다. 우리는 깨끗한 IP를 유지하므로 프로젝트를 사용하는 것이 “안전”합니다. 회사가 SCM을 통제하는 경우 때로는 프로젝트를 사용하는 것이 “안전”하지 않을 수 있습니다. 소스 코드에 접근할 수 있다는 것이 무료라는 의미는 아닙니다. Apache Struts를 사용하면 “원하는 대로 사용”할 수 있을 뿐만 아니라 기여할 수도 있습니다(항상 그런 것은 아닙니다). 그리고 가장 좋은 점은 핵심 팀의 일원이 될 수도 있다는 것입니다.

Apache Struts에 다른 기술을 통합하는 것은 일반적으로 매우 쉽습니다. Apache Cayenne, Hibernate 또는 JDBC와 같은 ORM을 사용하는 경우 어떤 제한도 없습니다. Apache Struts는 프론트엔드 기술에 지나치게 얽매이지도 않습니다. 옛날에는 JSP였고, 그다음에는 Velocity와 Freemarker가 나왔습니다. 요즘에는 정적 HTML과 AngularJS만으로 웹 애플리케이션을 구축할 수도 있습니다. 또는 Sitemesh나 Tiles를 사용하고 싶을 수도 있습니다. Struts의 우아하고 사용하기 쉬운 확장 메커니즘 덕분에 이 모든 것이 문제없이 가능합니다.

다른 컴포넌트 지향 프레임워크와 달리, 우리는 웹의 무상태(stateless) 특성을 숨기려고 하지 않습니다. 우리는 Request/Response 주기를 기반으로 구축하는 것이 완벽하게 수용 가능하다고 생각합니다. 또한 MVC 패턴이 오래되었다는 이유만으로 나쁘지 않다고 생각합니다. 실제로 우리는 Apache Struts 아키텍처가 깔끔하고 이해하기 쉽다고 믿습니다.

물론, 프론트엔드에서 렌더링되는 컴포넌트를 서버 측에서 구축하려는 경우 Struts는 대부분 적합하지 않을 것입니다. 이는 필요한 HTML/JavaScript 지식의 양을 줄이고 뷰 레이어용 재사용 가능한 컴포넌트를 만드는 것을 약속하는 다른 접근 방식입니다. Wicket과 Tapestry 같은 프로젝트가 이 목적에 매우 잘 부합합니다. 모든 프레임워크와 마찬가지로 컴포넌트를 구축하는 것이 적합한지, 아니면 Struts 방식을 사용하는 것이 더 나은지 결정해야 합니다.

도구 다운로드