일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- JavaScript
- Apache
- Ajax
- date
- Regex
- 전략
- 경영
- Forms
- file-upload
- jquery
- composer-php
- MySQL
- string
- php
- 웹하드추천
- JSON
- Arrays
- UTF-8
- function
- HTML
- curl
- variables
- OOP
- Session
- 웹하드순위
- 무료다운로드쿠폰
- Linux
- post
- Laravel
- Today
- Total
개발! 딱 깔끔하고 센스있게!
PHP 폼 토큰 사용 및 처리 본문
나는 php 로 로그인 스크립트를 쓴 초학자이다.
지금까지 내가 받은 표 표시 문구입니다:
$_SESSION["form_token"] = md5(rand(time (), true)) ;
이 어구는 사용자가 로그인 후 보내겠다고 표시했다.
나의 유한한 이해는 포켓의 목적은 유일하게 유일하게 유일하게 유일하게 사용자를 인식하고, 포스터 정보를 숨기는 것이다.
그리고 모든 것이 모호하게 변했다.
다음은 나의 세 개의 개방성 문제:
When is the best time to "check" the form token for security purposes?
How do I check it?
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; }
편집: 나는 원래의 문제를 오해했다.
생성과 검증표 하희의 관련 방법을 증가시켰다.
다음 자원을 참고하십시오:
'개발 스크랩 메모 > PHP' 카테고리의 다른 글
오류 메시지 표시 PHP Mysql (0) | 2020.11.21 |
---|---|
PHP 인 코딩 모드 되 돌리 기; switch / case 에서 (0) | 2020.11.20 |
구문 분석 오류 : 유효하지 않은 숫자 리터럴 (0) | 2020.11.20 |
확인란 상태가 항상 PHP 스크립트로 전달되는 것은 아닙니다. (0) | 2020.11.20 |
POST 안드로이드로 PHP 배열 보내기 (0) | 2020.11.20 |