TP 악성 커밋 방지

4535 단어 THINKPHP
1. 우선, 프로젝트의functions.php에 다음과 같은 방법을 추가합니다
//  TOKEN
function createToken() {
   $code = chr(mt_rand(0xB0, 0xF7)) . chr(mt_rand(0xA1, 0xFE)) .       chr(mt_rand(0xB0, 0xF7)) . chr(mt_rand(0xA1, 0xFE)) . chr(mt_rand(0xB0, 0xF7)) . chr(mt_rand(0xA1, 0xFE));
   session('TOKEN', authcode($code));
}
//  TOKEN
function checkToken($token) {
    if ($token == session('TOKEN')) {
       session('TOKEN', NULL);
       return TRUE;
    } else {
      return FALSE;
    }
}
/*   TOKEN */
function authcode($str) {
    $key = "YOURKEY";
    $str = substr(md5($str), 8, 10);
    return md5($key . $str);
}

2. 양식 페이지 form에 다음 HTML 코드를 입력합니다.
<input type="hidden" name="TOKEN" value="{:session('TOKEN')}" />

3. 페이지 전시 전에 creatToken() 방법을 사용하여 Token을 생성하고 해당 컨트롤러의 POST 요청에서 checkToken()을 사용하여 중복 제출 여부를 판단한다.
if(IS_POST)
{
$post_token = I('post.TOKEN');
  if(!checkToken($post_token)){
      $this->error('         ',U('User/Index/login'));
  }
}

좋은 웹페이지 즐겨찾기