PHP에서 쿠키를 사용하지 않고 세션을 관리하는 방법은 무엇입니까?
예, URL을 사용하여 세션 ID를 다시 작성하도록 PHP (예 : Session.use_Trans_SID를 활성화), 요청에 수동으로 Session_ID를 전달하거나 사용자 정의 토큰 기반 세션 시스템 (예 : 데이터베이스 랜덤 토큰 사용)을 구축하는 것과 같은 쿠키가없는 환경에서 세션을 관리 할 수 있지만 누출 및 고정 공격을 방지해야합니다. 로그인 한 후 HTTPS와 협력하고 토큰을 새로 고치는 것이 좋습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

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

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

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

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

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

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

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

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

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

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

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