whitelist에 대해서 질문드립니다 .
- 작성자 :
- 개*자
- 작성일 :
- 2022-02-15 13:38:43
- 조회수 :
- 1,896
- 구분 :
- 개발환경 / 3.10
- 진행상태 :
- 완료
Q
context-whitelist.xml 에 보면
<util:list id="egovPageLinkWhitelist" value-type="java.lang.String">
<value>main/inc/EgovIncHeader</value>
</util:list>
jsp 단에서는
<div id="header"><c:import url="/EgovPageLink.do?link=main/inc/EgovIncHeader" /></div>
EgovPageLink.do을 호출하고 그떄 파라미터는 link=main/inc/EgovIncHeader 를 보냅니다 그러면
서버단에서는
@RequestMapping(value = "/EgovPageLink.do")
public String moveToPage(@RequestParam("link") String linkPage, HttpSession session, @RequestParam(value = "baseMenuNo", required = false) String baseMenuNo) {
String link = linkPage;
link = link.replace(";", "");
link = link.replace(".", "");
// service 사용하여 리턴할 결과값 처리하는 부분은 생략하고 단순 페이지 링크만 처리함
if (linkPage == null || linkPage.equals("")) {
link = "cmm/error/egovError";
} else {
if(link.indexOf(",")>-1){
link=link.substring(0,link.indexOf(","));
}
}
// 선택된 메뉴정보를 세션으로 등록한다.
if (baseMenuNo != null && !baseMenuNo.equals("") && !baseMenuNo.equals("null")) {
session.setAttribute("baseMenuNo", baseMenuNo);
}
// 화이트 리스트 처리
// whitelist목록에 있는 경우 결과가 true, 결과가 false인경우 FAIL처리
if (egovWhitelist.contains(link) == false) {
LOGGER.debug("Page Link WhiteList Error! Please check whitelist!"+link);
link="cmm/error/egovError";
}
// 안전한 경로 문자열로 조치
link = EgovWebUtil.filePathBlackList(link);
return link;
}
이 경우에 리턴을 link 문자열을 하는데 그다음은 어떤 형태로 흘러가나요 ?
그냥 단지 jsp단에서 최초 호출했을떄 link에 있는 문자열이 context-whitelist.xml에 있는 <value>main/inc/EgovIncHeader</value>
여기에 없으면 에러내는건가요 ? 이걸 쓰는 이유가 먼지 궁금합니다 .따로 설정 파일에 문자열로 따로 뺸거면 제가 모르는 이유나 의도같은게
있을꺼 같아서요
<util:list id="egovPageLinkWhitelist" value-type="java.lang.String">
<value>main/inc/EgovIncHeader</value>
</util:list>
jsp 단에서는
<div id="header"><c:import url="/EgovPageLink.do?link=main/inc/EgovIncHeader" /></div>
EgovPageLink.do을 호출하고 그떄 파라미터는 link=main/inc/EgovIncHeader 를 보냅니다 그러면
서버단에서는
@RequestMapping(value = "/EgovPageLink.do")
public String moveToPage(@RequestParam("link") String linkPage, HttpSession session, @RequestParam(value = "baseMenuNo", required = false) String baseMenuNo) {
String link = linkPage;
link = link.replace(";", "");
link = link.replace(".", "");
// service 사용하여 리턴할 결과값 처리하는 부분은 생략하고 단순 페이지 링크만 처리함
if (linkPage == null || linkPage.equals("")) {
link = "cmm/error/egovError";
} else {
if(link.indexOf(",")>-1){
link=link.substring(0,link.indexOf(","));
}
}
// 선택된 메뉴정보를 세션으로 등록한다.
if (baseMenuNo != null && !baseMenuNo.equals("") && !baseMenuNo.equals("null")) {
session.setAttribute("baseMenuNo", baseMenuNo);
}
// 화이트 리스트 처리
// whitelist목록에 있는 경우 결과가 true, 결과가 false인경우 FAIL처리
if (egovWhitelist.contains(link) == false) {
LOGGER.debug("Page Link WhiteList Error! Please check whitelist!"+link);
link="cmm/error/egovError";
}
// 안전한 경로 문자열로 조치
link = EgovWebUtil.filePathBlackList(link);
return link;
}
이 경우에 리턴을 link 문자열을 하는데 그다음은 어떤 형태로 흘러가나요 ?
그냥 단지 jsp단에서 최초 호출했을떄 link에 있는 문자열이 context-whitelist.xml에 있는 <value>main/inc/EgovIncHeader</value>
여기에 없으면 에러내는건가요 ? 이걸 쓰는 이유가 먼지 궁금합니다 .따로 설정 파일에 문자열로 따로 뺸거면 제가 모르는 이유나 의도같은게
있을꺼 같아서요
환경정보
-
- OS 정보 :
- 표준프레임워크 버전 :
- JDK(JRE) 정보 :
- WAS 정보 :
- DB 정보 :
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터 입니다.
다음과 같이 사용할때
/EgovPageLink.do?link=지정된URL
지정된URL을 화이트리스트에 있는것으로
제한하여 통제하기 위해서 사용합니다.
그리고 전달된 URL에
보안에 위험한 특수문자를 제거하기 위한것도 있습니다.
?link=지정된URL 같은 가변 패턴을 사용하지 않는게
가장 좋은 방법입니다.
문의 하신 내용은
다음 중요 보안 패치에 해당합니다.
2019년 보안패치
https://www.egovframe.go.kr/home/ntt/nttRead.do?pagerOffset=50&searchKey=&searchValue=&menuNo=74&bbsId=6&nttId=1604
2018년 보안패치
https://www.egovframe.go.kr/home/ntt/nttRead.do?pagerOffset=70&searchKey=&searchValue=&menuNo=74&bbsId=6&nttId=1495
감사합니다.
표준프레임워크센터 입니다.
다음과 같이 사용할때
/EgovPageLink.do?link=지정된URL
지정된URL을 화이트리스트에 있는것으로
제한하여 통제하기 위해서 사용합니다.
그리고 전달된 URL에
보안에 위험한 특수문자를 제거하기 위한것도 있습니다.
?link=지정된URL 같은 가변 패턴을 사용하지 않는게
가장 좋은 방법입니다.
문의 하신 내용은
다음 중요 보안 패치에 해당합니다.
2019년 보안패치
https://www.egovframe.go.kr/home/ntt/nttRead.do?pagerOffset=50&searchKey=&searchValue=&menuNo=74&bbsId=6&nttId=1604
2018년 보안패치
https://www.egovframe.go.kr/home/ntt/nttRead.do?pagerOffset=70&searchKey=&searchValue=&menuNo=74&bbsId=6&nttId=1495
감사합니다.