Advertisement
Guest User

CSRF protection

a guest
Feb 8th, 2016
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 0.93 KB | None | 0 0
  1. <?php
  2. @session_start();
  3.  
  4. /*
  5.  * @author @0KaL_H4
  6.  */
  7.  
  8. class csrf {
  9.     public function token($action) {
  10.         if (!isset($_SESSION[md5(dirname(__FILE__))]['csrf_tokens'])) {
  11.             $_SESSION[md5(dirname(__FILE__))]['csrf_tokens'] = array();
  12.         }
  13.         $gen_token = md5(uniqid(rand(), true));
  14.         $_SESSION[md5(dirname(__FILE__))]['csrf_tokens'][md5($action)] = $gen_token;
  15.         return $gen_token;
  16.     }
  17.  
  18.     public function verify($action, $check) {
  19.         if (!isset($_SESSION[md5(dirname(__FILE__))]['csrf_tokens'])) {
  20.             $_SESSION[md5(dirname(__FILE__))]['csrf_tokens'] = array();
  21.             return false;
  22.         }
  23.         if (isset($_SESSION[md5(dirname(__FILE__))]['csrf_tokens']) AND
  24.                 isset($_SESSION[md5(dirname(__FILE__))]['csrf_tokens'][md5($action)]) AND
  25.                 $_SESSION[md5(dirname(__FILE__))]['csrf_tokens'][md5($action)] == $check) {
  26.             unset($_SESSION[md5(dirname(__FILE__))]['csrf_tokens'][md5($action)]);
  27.             return true;
  28.         } else {
  29.             return false;
  30.         }
  31.     }
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement