(세션/쿠키/스토리지/테이블) 방식 장단점
[질문] 그누보드5 (테마/게시판스킨)을 사용자가 ajax 이용해 선택 가능 시, (세션변수 생성 / 쿠키변수 생성 /스토리지에 저장 / 테이블에 저장) 4가지 방식 중 어떤 방식이 가장 좋나요?
[답변] 상황에 따라 다르며, 각 방식의 장단점 고려하여 적절한 방식을 선택 권장.
1. 세션변수 생성 방식
서버 측에서 세션 객체 생성해 해당 세션에 정보 저장함. 사용자의 브라우저에서 세션 ID를 쿠키로 전송하여 세션 객체를 식별함.
장점: 서버 측에서 관리 하기 때문에 보안이 우수함 . (브라우저 종료 시 세션도 함께 종료되기 때문에 보안에 더욱 강함.)
단점: 서버 메모리 사용하므로 서버 부하 발생 가능 .
2. 쿠키변수 생성 방식
클라이언트 측에서 쿠키 생성해 정보 저장함. 쿠키는 브라우저가 관리 함.
장점: 쿠키 이용하면 서버 부하를 줄일 수 있음. 또한, 쿠키는 브라우저가 관리하기 때문에 클라이언트 측에서 자유롭게 사용 가능.
단점: 쿠키는 브라우저에 저장되기 때문에 보안이 취약 함. 또한, 쿠키 크기는 작기 때문에 많은 정보 저장에는 부적합 .
3. 스토리지에 저장 방식
HTML5에 추가된 기능으로, 클라이언트 측에서 로컬 스토리지나 세션 스토리지를 사용하여 정보를 저장함.
장점: 쿠키보다 보안 우수 . 또, 크기 제한 없어 많은 정보 저장 가능 .
단점: HTML5 미지원 브라우저에서는 사용 불가 .
4. 테이블에 저장 방식
서버 측의 데이터베이스 테이블에 정보를 저장함.
장점: 서버 측에서 관리 하므로 보안 우수 . 또한, 정보를 영구적으로 보존 가능 .
단점: 서버 부하 가능성 존재함. 또, DB 접근 시간 증가 가능성 있음.
따라서, 정리하면 아래와 같음.
사용자 선택 스킨 정보 식별이 목적이면, 쿠키나 스토리지에 저장 .
보안이 중요하면 세션 변수나 테이블에 저장 .
그러나, 많은 정보 저장 경우에는 세션 변수나 테이블에 저장 .
또한, 사용자가 로그인한 상태에서만 스킨 선택 기능 사용하려면, 세션 변수나 테이블에 저장 .
브라우저 종료 후에도 정보 유지하려면, 스토리지에 저장 .
마지막으로, 어떤 방식 선택하든, 보안 고민은 필수 임.
중요 정보는 암호화 저장 하거나, 세션/쿠키 유효시간을 짧게 설정 .
또한, XSS/CSRF 같은 보안 취약점 예방 위한 대책도 반드시 강구.
주소 복사
랜덤 이동