<?php // Generates a token against CSRF // ============================== function generate_token($name = '') { if(session_id() == '') session_start(); $token = uniqid(rand(), true); $_SESSION[$name.'_token'] = $token; $_SESSION[$name.'_token_time'] = time(); return $token; } // Checks that the anti-CSRF token is correct // ========================================== function check_token($time, $name = '') { if(session_id() == '') session_start(); if(isset($_SESSION[$name.'_token']) && isset($_SESSION[$name.'_token_time']) && isset($_POST['token'])) { if($_SESSION[$name.'_token'] == $_POST['token']) { if($_SESSION[$name.'_token_time'] >= (time() - (int) $time)) return true; } } return false; }