개발! 딱 깔끔하고 센스있게!

PHP 폼 토큰 사용 및 처리 본문

개발 스크랩 메모/PHP

PHP 폼 토큰 사용 및 처리

렉사이 2020. 11. 20. 17:23

나는 php 로 로그인 스크립트를 쓴 초학자이다.

지금까지 내가 받은 표 표시 문구입니다:

$_SESSION["form_token"] = md5(rand(time (), true)) ; 

이 어구는 사용자가 로그인 후 보내겠다고 표시했다.

나의 유한한 이해는 포켓의 목적은 유일하게 유일하게 유일하게 유일하게 사용자를 인식하고, 포스터 정보를 숨기는 것이다.

그리고 모든 것이 모호하게 변했다.

다음은 나의 세 개의 개방성 문제:

  1. When is the best time to "check" the form token for security purposes?

  2. How do I check it?

  3. When, if ever, do I "destroy" the form token? (IOW, would the form token stay "active" until the user logs out?

대답

네가 시도하고 있는 일을 할 필요가 없다.

session start () php 에서 세션을 시작할 때 유일하게 sessionid 를 생성했습니다.

너는 이것을 양식에 써서는 안 된다.

기본 상황에서 쿠키스를 통해 처리합니다.

sessionid 검사도 필요 없습니다.

이것도 처리해드립니다.

사용자에 대한 인증을 진행하고 세션에서 인증 인증을 받은 인증 (예를 들어 u sesssion ['useru id]=$user id.사용자가 로그아웃하면 세션 u destroy 를 사용하여 세션을 폐기합니다.

session start () 는 사이트 중 모든 페이지의 가장 중요한 임무 중 하나입니다.

다음은 기본 실례:

login($username, $password)) { $_SESSION['user_id'] = $user->getId(); return true; } return false; } function logout() { session_destroy(); } function isLoggedIn() { return isset($_SESSION['user_id']); } function generateFormHash($salt) { $hash = md5(mt_rand(1,1000000) . $salt); $_SESSION['csrf_hash'] = $hash return $hash; } function isValidFormHash($hash) { return $_SESSION['csrf_hash'] === $hash; } 

편집: 나는 원래의 문제를 오해했다.

생성과 검증표 하희의 관련 방법을 증가시켰다.

다음 자원을 참고하십시오:

Comments