이번에 취약점 검사를 진행하다 보니 문제가 있던 부분들이 꽤 있었는데( 매년 달라지는.. 취약점 😂)
정리를 하다 보니 블로그에도 올리면 좋을 것 같아서 작성하게 됐습니다. 너무 힘들어요!! 보안!! 해킹 좀 그만해!!
여러 취약점이 있는데 오늘은 쿠키를 가지고 왔습니다. 시간이 날때마다 취약점 관련해서 작성을 하도록 하겠습니다.
SamSite
일단 첫번째는 SamSite입니다.
쿠키의 SameSite 속성은 쿠키가 사이트 간 요청에서 특정 상황에서만 전송되도록 제한 및 결정하는 보안 설정입니다.
주로 CSRF (Cross-Site Request Forgery)와 같은 공격을 방지하는 데 쓰입니다.
SameSite의 속성에는 총 3가지 값이 있습니다.
Strict , Lax , None 입니다.
1. Strict
가장 높은 단계의 설정이라고 생각하시면 됩니다.
사용 중인 브라우저 및 동일 사이트에서의 요청에서만 쿠키가 전송됩니다.
주로 인증이나 장바구니 저장 및 구매 등에 사용하며 CSRF와 같은 공격을 방지하는 데 매우 효과적입니다.
단점으로는 가장 높은 단계의 설정이기도 해서 외부에서 사이트를 방문 시
로그인이나 인증정보가 유지되지 않을 수 있습니다.
보안이 아주 강하지만, 사용자의 입장에서 제약이 많을 수 있습니다.
2. Lax
Strict보다는 조금 완화된 속성으로 , 일반적인 탐색요청 (주로 GET 방식)에서만 쿠키가 전송됩니다.
예를 들면 현재 사용 중인 사이트에서 다른 홈페이지로 링크를 타서 제품 할인을 받는 경우들이 있는데,
이런 것을 따라간 것을 나타내는 쿠키를 설정하고 전송할 수 있습니다.
하지만 POST 같은 요청에는 쿠키가 전송되지 않습니다.
보안은 어느 정도 유지하면서 , 사용성에 크게 영향을 주지 않는다고 생각하시면 됩니다.
3. None
모든 요청이라고 생각하시면 됩니다. GET, POST, 동일한 사이트, 교차사이트 등 모든 요청에 대해 쿠키가 전송됩니다.
이 속성을 사용하려면 다음 글에 작성할 Secure 속성을 함께 설정해야만 쿠키가 HTTPS 연결에서 전송됩니다.
장점으로는 제 3자 콘텐츠 ( 외부 콘텐츠, 광고 기술, 또는 분석 제공) 이 쿠키를 사용할 수 있게 해 줍니다.
역시나 이렇게 열린 속성인 만큼 단점으로는 CSRF의 공격을 받을 수 있어서 보안에 주의가 필요합니다.
이처럼 쿠키의 SameSite 속성은 3가지가 있으며 상황에 따라 웹사이트의 용도에 맞게 걸면 될 것 같습니다.
로그인이 필요하지 않고 같은 출처에서의 요청에만 따른 사이트는 Strict가 좋고
SNS나 광고 및 링크 클릭으로 사이트 방문이 빈번한 경우에는 Lax가 좋다고 생각합니다.
아파치 및 php로 설정하는 법을 알려드리겠습니다.
http.conf 파일 수정
Header always edit Set-Cookie ^(.*)$ $1;SameSite=Lax(속성)
// PHP 7.3 이상
setcookie('cookie_name', 'cookie_value', [
'expires' => time() + 3600,
'path' => '/',
'domain' => 'example.com',
'secure' => true, // HTTPS에서만 전송
'httponly' => true, // JavaScript에서 접근 불가
'samesite' => 'Lax' // 또는 'Strict', 'None'
]);
// PHP 7.2 이하에서는 직접 헤더를 설정
header('Set-Cookie: cookie_name=cookie_value; SameSite=Lax; Secure; HttpOnly');
보시고 유용한 정보가 되면 좋겠습니다.
부족한 부분이나 잘못된 부분이 있으면 댓글로 알려주세요. 추가 보충하겠습니다.!!!
그럼 이만~ 물러나겠습니다.
모두 안전한 보안 취약점 되세요~~ㅋㅋㅋㅋㅋ
'개발 > Server' 카테고리의 다른 글
Crontab 설정 (0) | 2024.11.16 |
---|---|
HTTP Content-Security-Policy 보안 컨텐츠 정책 설정 - 취약점 검사 (1) | 2024.11.15 |
쿠키 Secure , HttpOnly 속성 누락 - 취약점 검사 (1) | 2024.11.09 |