728x90
jsp를 이용해서 뷰페이지를 작성하는 와중 ${} 앞에 <c:out>이 들어가는 이유가 궁금해졌다.넣지않고 코드를 작성해도 그대로 동작하는데 왜 사용하는 것 일까?
이유는, 보안성 관련이 크다
정보처리기사시험에서 본
XXS(Cross site Scripting) 크로스 사이트 스크랩핑 이라는
웹사이트에 스크립트 코드를 주입시켜서 웹사이트를 공격하는 방법인데,
html코드를 해석하지 않게 만들어 방어하기위해 c:out을 사용하는 것이였다.
이게 무슨뜻이냐면
게시판을 구현해서 게시판에 글을 등록할때,
제목에 안녕하세요 를 작성할때
<script>alert<"안녕하세요"></script>
이런식으로 js를 넣으면 자바스크립트 코드가 실행된다..
그래서 출력 문자열에 HTML 특수문자(예: <, >, &, ' 또는 ") 포함되어 있을 경우
HTML을 해석하지 않고 그대로 출력되도록 해준다 라는 뜻이다.
c:out을 넣으면 제목에 <script>alert<"안녕하세요"></script> 가 그대로 출력된다.
자바 스크립트 코드로 개인정보를 훔치고, 악성코드를 심을 수도 있어 주의해야한다.
728x90
'FRONT > JSP' 카테고리의 다른 글
(스프링)pageContext.request.contextPath의 사용 (0) | 2021.07.20 |
---|