일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- PG-Strom
- STS
- tortoise SVN
- 서브라임 텍스트
- Spring
- NestJS
- loadcomplete
- Can't load AMD 64-bit .dll on a IA 32-bit platform
- HTML Code
- graph database
- Next.js
- OGM
- orioledb
- MariaDB
- JSP
- Java
- HTML Special Entity
- typeorm
- Maven Project
- Eclipse
- Spring Boot
- tomcat
- BRIN
- PostgreSQL
- Windows 10
- springboot
- maven
- NextJs
- Spring Cloud
- exit code = -805306369
- Today
- Total
Undergoing
[Struts2] 취약점 관련 Struts 2.3.15.1로 라이브러리 변경 본문
오늘 데일리시큐에서 이런 뉴스가 떴다.
http://dailysecu.com/news_view.php?article_id=4811
내용인즉슨, 아파치(Apache)에서 개발한 소프트웨어 ‘struts2’에 존재하는 2개의 크리티컬한 보안취약점(CVE-2013-2251)을 집중적으로 파고도는 공격툴로 인해 중국의 많은 업체들이 피해를 입었다는 것이다. 이를 방비하기 위해 Apache struts팀은 struts 2.3.15.1 버전을 발표했다고 한다.
struts.apache.org/download.cgi#struts23151
그렇다고 라이브러리를 통째로 변경할 수 없는 노릇이고, 기존에 있는 프로젝트를 유지하면서 패치하려면 어떤 파일을 변경해야 할지 헷갈릴 수 있다. 이를 잡기 위한 효과적인 방법을 찾던 중, 중국발 사이트에서 해결법을 발견하였다(http://ee.riaos.com/?p=20004983). 구글 번역기를 이용하여 돌린 결과, 다음과 같은 해결책을 얻을 수 있었다.
---------------------------------------------------------------------------------------------------
1, 라이브러리 패키지 제거
struts2-core-2.0.14.jar,ognl-2.6.11.jar,commons-lang-2.1.jar,xwork-2.0.7.jar
2, 라이브러리 패키지 추가
struts2-core-2.3.15.1.jar,xwork-core-2.3.15.1.jar,ognl-3.0.6.jar,javassist-3.11.0.GA.jar,commons-lang3-3.1.jar
(*주 : 이외에도 commons-*.jar 파일, antlr-2.7.2.jar, freemaker-2.3.18.jar 등의 파일도 변경했다. 기본적으로는 위 파일들이 포함되는 것 같고, 나머지는 case by case인 듯)
lib패키지 다운로드 주소 추가(*주 : 아마도 이 부분은 해당 URL에서 struts를 다운로드 받으라는 것 같다)
http://mirror.bit.edu.cn/apache//struts/binaries/struts-2.3.15.1-all.zip
3, web.xml 수정
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
위 내용을 다음과 같이 변경:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
위 내용 외에도, Validate.xml의 DOCTYPE도 변경해야 한다. 첫 구문을 다음과 같이 수정한다.
---------------------------------------------------------------------------------------------------
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator Config 1.0//EN"
"http://struts.apache.org/dtds/xwork-validator-config-1.0.dtd">
'개발 > Web Development' 카테고리의 다른 글
HTML Special Entity Code (0) | 2014.08.29 |
---|---|
[Maven+Spring] Eclipse Web Project 생성 1 - new project 생성 (0) | 2014.06.12 |
[Spring MVC/Tomcat] Tomcat 재기동시 페이지 접근 에러 발생 (0) | 2012.11.06 |
[struts] xml에 있는 값 불러오기 (0) | 2012.08.31 |
web.xml 거치지 않고 Servlet 내에서 해결하기 (0) | 2012.08.28 |