쿠키
GitLab v19.1일반적으로 사용자 데이터를 저장할 때 쿠키보다 더 적합한 장소가 있습니다. 일반적으로 사용자 ID, 사용자를 식별할 수 있는 정보, 토큰 또는 기타 시크릿과 같은 민감한 정보를 쿠키에 저장하지 마십시오. Ruby on Rails는 ActionController에 내장된 쿠키 설정 및 조회 기능을 제공합니다.
일반적으로 사용자 데이터를 저장할 때 쿠키보다 더 적합한 장소가 있습니다.
백엔드 개발에서는 PostgreSQL, Redis, 세션 스토리지를 사용할 수 있습니다.
프론트엔드 개발에서는 localStorage, IndexedDB 또는 다른 옵션보다 쿠키가 더 안전할 수 있습니다.
일반적으로 사용자 ID, 사용자를 식별할 수 있는 정보, 토큰 또는 기타 시크릿과 같은 민감한 정보를 쿠키에 저장하지 마십시오. 자세한 내용은 보안 코딩 가이드라인을 참조하십시오.
Rails에서의 쿠키#
Ruby on Rails는 ActionController에 내장된 쿠키 설정 및 조회 기능을 제공합니다. Rails는 쿠키를 사용하여 사용자의 세션 ID를 추적하며, 이를 통해 세션 스토리지에 액세스할 수 있습니다. 사용자가 로그인 시 Remember Me 체크박스를 선택하면 Devise도 쿠키를 설정하여, 브라우저를 닫았다가 다시 열어도 사용자가 재인증할 수 있도록 합니다.
:path, :expires, :domain, :httponly 등의 옵션으로 쿠키를 설정할 수 있습니다.
구현하려는 기능에 필요한 경우가 아니라면 이 옵션의 기본값을 변경하지 마십시오.
GitLab이 설정한 쿠키는 사용자가 로그아웃할 때 기본적으로 해제됩니다.
:domain 옵션으로 쿠키를 설정한 경우, 동일한 :domain 파라미터를 사용하여 해당 쿠키를 해제해야 합니다.
그렇지 않으면 브라우저가 실제로 쿠키를 삭제하지 않으며, 삭제되어야 할 잠재적으로 민감한 데이터가 유지될 위험이 있습니다.
프론트엔드 코드에서의 쿠키#
일부 프론트엔드 코드는 알림 닫기나 사이드바 위치 기본 설정과 같이 세션 중 데이터를 유지하기 위해 쿠키를 설정합니다.
이러한 쿠키에 합리적인 기본값을 적용하기 위해 common_utils의 setCookie 및 getCookie 헬퍼를 사용합니다.
2021년 이후 브라우저들이 추적 스크립트에 대응하기 위해 JavaScript 스크립트가 설정한 쿠키와 localStorage 데이터를 적극적으로 삭제하기 시작했다는 점에 유의하십시오.
쿠키가 매일 또는 며칠마다 해제되는 것처럼 보인다면, 데이터가 삭제되고 있을 가능성이 있으므로 브라우저 로컬 스토리지 대신 서버 측에 데이터를 저장하는 것을 고려해야 합니다.