목차
URL에서 세션 ID를 사용하십시오
요청에서 세션 ID를 수동으로 전달합니다
세션을 저장 서버 측, 토큰을 통해 식별하십시오
백엔드 개발 PHP 튜토리얼 PHP에서 쿠키를 사용하지 않고 세션을 관리하는 방법은 무엇입니까?

PHP에서 쿠키를 사용하지 않고 세션을 관리하는 방법은 무엇입니까?

Sep 14, 2025 am 12:59 AM
php

예, URL을 사용하여 세션 ID를 다시 작성하도록 PHP (예 : Session.use_Trans_SID를 활성화), 요청에 수동으로 Session_ID를 전달하거나 사용자 정의 토큰 기반 세션 시스템 (예 : 데이터베이스 랜덤 토큰 사용)을 구축하는 것과 같은 쿠키가없는 환경에서 세션을 관리 할 수 ​​있지만 누출 및 고정 공격을 방지해야합니다. 로그인 한 후 HTTPS와 협력하고 토큰을 새로 고치는 것이 좋습니다.

PHP에서 쿠키를 사용하지 않고 세션을 관리하는 방법은 무엇입니까?

PHP에서 쿠키없이 세션을 관리하는 것은 URL을 통해 세션 식별자를 통과하거나 요청에 수동으로 통과하여 가능합니다. PHP는 기본적으로 쿠키에 의존하여 세션 ID ( PhpsSessid )를 저장하지만이를 위해 작동하도록 구성 할 수 있습니다. 방법은 다음과 같습니다.

URL에서 세션 ID를 사용하십시오

PHP는 쿠키 대신 URL 매개 변수를 통해 세션 ID를 전파 할 수 있습니다. 이것을 세션 ID URL 재 작성이라고합니다.

설정하여 활성화하십시오.
  • session.use_cookies = 0- 쿠키 기반 세션 스토리지를 비활성화합니다.
  • session.use_only_cookies = 0 - URL에서 세션 ID를 허용합니다.
  • session.use_trans_sid = 1 - URL에서 투명한 세션 ID 전파를 활성화합니다.

php.ini 또는 via ini_set () 의 구성 예제 :

ini_set ( 'session.use_cookies', 0);
ini_set ( 'session.use_only_cookies', 0);
ini_set ( 'session.use_trans_sid', 1);

활성화 된 후에는 Session_Start ()을 호출하고 PHP는 SID (예 : Page.php? phpsessid = ABC123 )를 사용하여 상대 링크에 세션 ID를 자동으로 추가합니다.

요청에서 세션 ID를 수동으로 전달합니다

양식, 쿼리 문자열 또는 헤더로 세션 ID를 수동으로 생성하고 전달할 수 있습니다.

단계 :
  • 세션을 시작하고 ID를 검색하십시오 : $ sid = session_id ();
  • 링크에 ID를 포함시킵니다. 계속
  • 다음 페이지에서 시작하기 전에 세션 ID를 설정하십시오. session_id ($ _ get [ 'sid']); session_start ();

이는 완전히 제어하지만 세션 고정 또는 노출을 피하기 위해 신중한 취급이 필요합니다.

세션을 저장 서버 측, 토큰을 통해 식별하십시오

파일, 데이터베이스 또는 캐시에서 고유 한 토큰 및 저장 세션 데이터를 생성하여 각 토큰을 사용자 데이터에 매핑하는 사용자 정의 세션 메커니즘을 사용하십시오.

예:
  • 토큰 생성 : $ token = bin2Hex (random_bytes (32));
  • $ 토큰 으로 키워진 데이터베이스에 세션 데이터를 저장합니다.
  • 토큰을 URL 또는 게시물 데이터로 전달하십시오.
  • 각 요청에서 토큰을 사용하여 데이터를 검색하십시오.

이는 PHP의 내장 세션 시스템을 완전히 피하고 더 많은 유연성과 보안 제어를 제공합니다.

URL에서 세션 ID를 통과시키기에는 단점이 있습니다. 참조 장치 헤더, 브라우저 기록 또는 로그에서 유출 될 수 있습니다. 항상 https를 사용하고 로그인 후 재생 토큰을 고려하십시오.

기본적으로 URL을 다시 작성하거나 ID를 수동으로 전달하거나 사용자 정의 토큰 기반 시스템을 구축하여 쿠키없이 세션을 관리 할 수 ​​있습니다. 보안을주의 깊게 처리하십시오.

위 내용은 PHP에서 쿠키를 사용하지 않고 세션을 관리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Stock Market GPT

Stock Market GPT

더 현명한 결정을 위한 AI 기반 투자 연구

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP에서 XSS (크로스 사이트 스크립팅) 공격을 방지하는 방법은 무엇입니까? PHP에서 XSS (크로스 사이트 스크립팅) 공격을 방지하는 방법은 무엇입니까? Sep 15, 2025 am 12:10 AM

expensexsByEscapingOutputwithHtMlSpecialChars () orjson_encode (), validateInputusingFilter_var (), applyingcspheaders, andusingsecureframeworkslikelaravel.

PHP의 CSRF (Cross-Site Request Prospory) 공격을 방지하는 방법은 무엇입니까? PHP의 CSRF (Cross-Site Request Prospory) 공격을 방지하는 방법은 무엇입니까? Sep 11, 2025 pm 12:45 PM

themosteffication waytopreventcsrfattacksinphpisusinganti-csrftokens.generateAcureTokenviabin2Hex (random_bytes (32)), storeitin $ _session, andincludeasahiddenfieldinforms.uponsubmission, verifythetokenmatchesthessionvalue;

PHP에서 우편 데이터를 얻는 방법? PHP에서 우편 데이터를 얻는 방법? Sep 16, 2025 am 01:47 AM

$ _post Hyperglobal 배열을 사용하여 우편 데이터를 얻고 양식 이름 속성을 통해 값을 읽고 배열 입력을 처리 할 때 Foreach 루프를 사용하여 XSS를 방지하려면 데이터를 확인하고 필터링해야합니다.

PHP에서 이미지에 워터 마크를 추가하는 방법 PHP에서 이미지에 워터 마크를 추가하는 방법 Sep 15, 2025 am 03:26 AM

PHP의 GD 라이브러리를 사용하여 이미지에 워터 마크를 추가하십시오. 먼저 원본 이미지와 워터 마크 (텍스트 또는 이미지)를로드 한 다음 imageCopy () 또는 imageTtfText ()를 사용하여 병합하고 마지막으로 출력을 저장하십시오. JPEG, PNG 및 기타 형식을 지원하고 투명성 및 글꼴 경로 처리에주의를 기울이고 GD 확장이 활성화되어 있는지 확인하십시오.

PHP에서 CURL을 사용하여 API 호출을하는 방법은 무엇입니까? PHP에서 CURL을 사용하여 API 호출을하는 방법은 무엇입니까? Sep 15, 2025 am 05:16 AM

initializecurlwithcurl_init (), setOptions -likeUrl, 메소드, 및 헤드, sendDataUsingPostorCustommethods, handlerSponseViacurl_exec (), checkerrorswithCurl_Error (), retrievestUsUsingCurl_GetInfo (), decodeJsonResponse 및 closewithuplose ().

PHP의 구분 기호로 문자열을 분할하는 방법은 무엇입니까? PHP의 구분 기호로 문자열을 분할하는 방법은 무엇입니까? Sep 11, 2025 pm 12:58 PM

exploit () 함수를 사용하여 문자열을 분리기로 분할하면 구문이 탐색됩니다 (Delimiter, String, Limit Number), 예를 들어 Exploit ( ","Apple, Banana ")를 사용하여 배열을 반환합니다 [ 'Apple', 'Banana']; 한계 매개 변수는 탐색 ( "-", "Two-Three", 2)와 같은 반환 된 요소의 수를 제어하여 [ 'One', '2-3']; 다수의 분리기가 필요한 경우 preg_split ()와 같은 preg_split ()와 같은 일반 표현식과 함께 preg_split ()가 사용됩니다.

PHP의 배열로 개체를 변환하는 방법은 무엇입니까? PHP의 배열로 개체를 변환하는 방법은 무엇입니까? Sep 14, 2025 am 03:14 AM

간단한 개체를 배열로 변환하기 위해 (배열)를 사용하십시오. 개인 또는 보호 된 속성을 포함하는 경우 키 이름에는 특수 문자가 있습니다. 중첩 된 물체의 경우 재귀 함수를 사용하여 모든 계층 적 객체가 연관 배열이되도록 변환을 통과해야합니다.

PHP에서 환경 변수로 작업하는 방법은 무엇입니까? PHP에서 환경 변수로 작업하는 방법은 무엇입니까? Sep 15, 2025 am 03:55 AM

usegetenv () toreadenvironmentvariablesandvlucas/phpdotenvtoload.envfilesindevelopment; storeSensitivedAtalikeApikeySousoutSidecode, neverCommit.envToversionControl, anduSeactualEnvtOversOntrol, anduSeactualEnviribaribleSectionForsecurity.

See all articles