라이브러리
[PHP_CONFIG] session.cookie_samesite - 세션 쿠키의 SameSite 설정
PHP SESSION COOKIE SAME SITE
PHP SESSION COOKIE SAME SITE은 HTTP 요청의 Referer 헤더를 검사하여 요청이 동일한 도메인에서 발생했는지 확인하는 기능입니다. 이 기능은 CSRF(Cross-Site Request Forgery) 공격을 방지하기 위해 사용됩니다.
SAME SITE의 종류
SAME SITE에는 세 가지 종류가 있습니다.
1. Lax: Lax는 기본값으로 설정됩니다. Lax는 GET 요청에서만 SAME SITE를 검사합니다. POST 요청은 SAME SITE 검사를 수행하지 않습니다.
2. Strict: Strict는 모든 요청에서 SAME SITE를 검사합니다. 이 설정은 CSRF 공격을 방지하기 위해 사용됩니다.
3. None: None은 SAME SITE 검사를 수행하지 않습니다.
PHP SESSION COOKIE SAME SITE 설정
PHP SESSION COOKIE SAME SITE 설정은 `session.cookie_samesite` 옵션을 사용하여 설정할 수 있습니다.
#hostingforum.kr
php
// session.cookie_samesite 옵션을 Strict로 설정
session_cookie_samesite = "Strict";
예제
#hostingforum.kr
php
// session_start() 함수를 호출하여 세션을 시작합니다.
session_start();
// session.cookie_samesite 옵션을 Strict로 설정합니다.
ini_set('session.cookie_samesite', 'Strict');
// CSRF 공격을 방지하기 위해 token을 생성합니다.
$token = bin2hex(random_bytes(32));
// 세션에 token을 저장합니다.
$_SESSION['token'] = $token;
// CSRF 공격을 방지하기 위해 token을 검사합니다.
if ($_POST['token'] !== $_SESSION['token']) {
// CSRF 공격이 발생한 경우
echo "CSRF 공격이 발생했습니다.";
exit;
}
// CSRF 공격이 발생하지 않은 경우
echo "CSRF 공격이 발생하지 않았습니다.";
참고
* `session.cookie_samesite` 옵션은 PHP 7.3 이상에서 사용할 수 있습니다.
* SAME SITE 검사는 브라우저에서 지원해야 합니다. 일부 브라우저에서는 SAME SITE 검사를 지원하지 않을 수 있습니다.
* CSRF 공격을 방지하기 위해 token을 생성하고 검사하는 것이 중요합니다. token을 생성하고 검사하는 방법은 위 예제와 유사합니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.