Guest User

zerkms

a guest
Dec 1st, 2010
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.19 KB | None | 0 0
  1. <?php
  2.  
  3. session_start();
  4.  
  5. $token = calculate_token();
  6.  
  7. $session_token = isset($_SESSION['token']) ? $_SESSION['token'] : null;
  8.  
  9. if (!$session_token) {
  10.     $_SESSION['token'] = $token;
  11. } elseif ($session_token != $token) {
  12.     session_regenerate_id();
  13.     $_SESSION = array();
  14.     $_SESSION['token'] = $token;
  15. }
  16.  
  17. function calculate_token()
  18. {
  19.     $ip = !empty($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '127.0.0.1';
  20.     $ua = !empty($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'no ua';
  21.     $charset = !empty($_SERVER['HTTP_ACCEPT_CHARSET']) ? $_SERVER['HTTP_ACCEPT_CHARSET'] : 'no charset';
  22.     $ip = substr($ip, 0, strrpos($ip, '.') - 1);
  23.     return md5($ua . $ip . $charset);
  24. }
  25.  
  26. if (isset($_POST['token'])) {
  27.     if ($_POST['token'] != $token) {
  28.         echo 'FU';
  29.         exit;
  30.     }
  31.    
  32.     if (isset($_POST['url'])) {
  33.         header('Location: ' . $_POST['url']);
  34.         exit;
  35.     }
  36.    
  37.     echo 'There was no url';
  38. }
  39.  
  40. ?>
  41.  
  42. <form method="POST">
  43. <input type="input" name="foo" />
  44. <input type="hidden" name="url" value="http://google.com" />
  45. <input type="hidden" name="token" value="<?php echo $token; ?>" />
  46. <input type="submit" />
  47. </form>
Advertisement
Add Comment
Please, Sign In to add comment