세션 쿠키에서 Httponly 속성이 누락되었을 경우 고객 세션 및 쿠키를 빼내거나 조작하는 것이 가능하여
해커가 사용자 레코드를 보거나 변경할 수 있으며 해당 사용자처럼 트랜잭션을 수행할 수 있다.
Httponly 속성이 적용되었는지 확인 방법은 해당 사이트에 들어가서 개발자 도구에서 document.cookie 실행 시 값이 나오지 않으면 된다.
Httponly 속성 걸기: web.xml 에 <filter> 태그 앞에 해당 소스 삽입
<session-config>
<cookie-config>
<http-only>true</http-only>
<secure>false</secure>
</cookie-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
각 속성에 대한 설명은 아래를 참고하기 바란다.
세션을 전달하는 방법(세션 트래킹)을 설정한다. 다음은 세션 트래킹을 설정하는 3가지 방법으로 중복 설정이 가능하고 설정하지 않으면 쿠키에 의한 트래킹만을 사용하도록 설정된다.
설정값 | 설명 |
---|---|
Cookie | 세션 트래킹 방법으로 쿠키를 사용하는 경우의 설정이다.
|
Url | 세션 트래킹 방법으로 URL Rewriting 방법을 사용할 경우의 설정이다.
|
Ssl | 세션 트래킹 방법으로 SSL을 사용할 경우의 설정이다.
|
Session Cookie
사용자의 세션을 추적하는 기본 기술은 모든 클라이언트 응답에 반환되는 세션 쿠키를 이용하여 구현된다. 이는 웹 엔진에서 응답를 내보낼 때 HTTP 헤더의 세션 쿠키에 대한 설정이다. 일반적으로 엔진에서 쿠키를 구성하지만, 특별한 쿠키 정보를 구성하는 경우에 사용한다. 다음과 같은 세부 항목을 설정할 수 있다.
항목 | 설명 |
---|---|
세션 쿠키의 이름으로 표준 이름인 "JSESSIONID"를 사용하지 않고 다른 이름을 사용할 경우에 설정한다. String 형식의 설정이며, 설정하지 않을 경우 기본값으로 설정된다. (기본값: JSESSIONID) | |
쿠키 ID의 버전을 설정한다. Int 형식의 설정으로 다음의 값 중에 하나를 설정한다.
| |
세션 쿠키가 전달될 때 서버의 도메인 이름을 설정한다. 쿠키는 이 도메인 요청에 대해서만 되돌아온다. 하나의 적합한 도메인 이름은 "."으로 시작되어야 하며, <host_name>을 지정해서는 안 된다. 이에 대한 자세한 내용은 "RFC-2109 스펙"을 확인한다. String 형식의 설정이며, 설정을 하지 않았을 경우 쿠키에 도메인 정보를 포함하지 않는다. | |
세션 쿠키가 보내질 도메인 내의 String 형식의 URL 경로를 설정한다. 쿠키는 도메인이 적합할 때 해당 URL의 어떤 요청과 함께 보내진다. 예를 들어 만일 "/examples"라는 경로가 설정되고, 도메인은 ".foo.com"으로 설정되었다고 가정할 때 클라이언트의 요청들은 "www.foo.com/examples"의 형식에 맞을 경우에만 해당 쿠키를 포함하여 서버로 요청한다. 이 또한 위의 도메인 설정과 더불어 "RFC-2109 스펙"을 확인한다.
경로의 최상위 값인 "/"가 아닌 다른 값으로 설정할 경우에는 애플리케이션들의 세션 공유 특성들을 고려하여 주의 깊게 값을 설정한다. | |
세션 쿠키의 expires 속성을 설정한다. 이 시간 주기가 되면 쿠키는 클라이언트로부터 제거되고 더 이상 보내지지 않는다. Int 형식의 설정이며, 설정하지 않을 경우 기본값으로 설정된다. (기본값: -1, 단위: 초) 기본값으로 설정하면 쿠키의 "expires" 속성을 사용하지 않겠다는 것을 의미한다. 즉, 브라우저의 LifeCycle을 따르겠다는 의미로, 브라우저가 닫힐 때 쿠키는 사용자의 세션이 끝남과 동시에 끝난다. | |
세션 쿠키의 secure 속성을 Boolean 형식으로 설정하고 설정하지 않을 경우 기본값으로 설정된다.
| |
세션 ID 쿠키의 HttpOnly 속성을 Boolean 형식으로 설정한다. 설정하지 않을 경우 기본값으로 설정된다. HttpOnly 속성은 Servlet 3.0에 추가된 기술로 HTTP 외의 스크립트 요청에 의해서 해당 쿠키가 사용되는 것을 방지하는 보안 기술이다.
| |
사용자가 해당 쿠키에 대한 정보를 쉽게 알 수 있도록 하기 위해 해당 쿠키에 대한 목적 또는 설명을 기록한다. Netscape Version 0 쿠키에서는 지원되지 않는다. |
참고사이트: https://technet.tmaxsoft.com/upload/download/online/jeus/pver-20140827-000001/session/chapter_session_tracking.html