Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Token i bezpieczeństwo.
puz219
post 16.02.2009, 13:47:57
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

Ostrzeżenie: (0%)
-----


Witam.

Napisałem sobie skrypt tokena, tylko nie wiem, czy moje rozwiązanie jest bezpieczne oraz jak trudne będzie odczytanie takiego tokena przez bota.

Skrypt składa się z 3 plików:

funkcje.php
  1. <?php
  2. function FormRejestracja($tokencode, $komentarz="") {
  3.     $_SESSION["token"] = $tokencode;
  4.     ?>
  5.         <form method="POST" name="rejestracja" action="formularz.php">
  6.             <? echo $komentarz; ?>
  7.             <fieldset>
  8.                 <legend>Login</legend>
  9.                 <input type="text" id="login" name="login">
  10.    
  11.             </fieldset>
  12.             <fieldset>
  13.                 <legend>Hasło</legend>
  14.                 <input type="password" id="pass" name="pass">
  15.             </fieldset>
  16.             <fieldset>
  17.                 <legend>Powtórz hasło</legend>
  18.                 <input type="password" id="pass" name="pass2">
  19.             </fieldset>
  20.             <fieldset>
  21.                 <legend>E-mail</legend>
  22.                 <input type="text" id="email" name="email">
  23.             </fieldset>
  24.             <fieldset>
  25.                 <legend>Token</legend>
  26.                 <? //include_once("user_token.php");                
  27.                 echo '<img src="token_pic.php">';?>
  28.                 <input type="text" id="token" name="token">
  29.             </fieldset>
  30.             <input type="hidden" name="los" value="<? echo $chars; ?>">
  31.             <p><input type="submit" id="sudmit" name="send_reg" value="Rejestruj"></p>
  32.         </form>
  33.     <?}
  34.  
  35. function createToken() {
  36. $char = array(1,2,3,4,5,6,7,8,9,'q','w','e','r','t','y','u','i',
  37. 'o','p','l','k','j','h','g','f','d','s','a','z','x','c','v','b','n','m','Q'
  38. ,'W','E','R','T','Y','U','I','O','P','L','K','J','H','G','F','D','S',
  39. 'A','Z','X','C','V','B','N','M');
  40.     $text = "";
  41.     for($i = 0; $i < 7; $i++)
  42.     {
  43.         $text .= $char[array_rand($char)];
  44.     }
  45.  
  46. return $text;
  47. }



formularz.php
  1. <?php
  2. include_once(funkcje.php);
  3.  
  4. $token = createToken();
  5.  
  6. if(isset($_POST["send_reg"]))
  7.     {
  8.        if($_POST['token'] == $_SESSION['token'])
  9.        {
  10.           $_SESSION["kom_r"] = "Token poprawny";
  11.          
  12.           echo $_SESSION["kom_r"];
  13.        }
  14.        else
  15.        {
  16.           FormRejestracja($token, "Token niepoprawny");
  17.        }
  18.     }else {
  19.    
  20.     FormRejestracja($token); }
  21. ?>


token_pic.php
  1. <?php
  2. header ('Content-type: image/gif');
  3.  
  4. $text = $_SESSION["token"];
  5.  
  6. /* generowanie tokena za pomocą biblioteki GD */
  7. /* jeżeli ktoś chce kod, to proszę pisać, a tutaj nie wklejam,
  8. bo jest dość długi, a i tak nic nie wnosi do kwestii bezpieczeństwa (no chyba, że się mylę) */
  9.  
  10. imagegif($image);
  11. imagedestroy ($Image);
  12. ?>


Prosiłbym o sprawdzenie napisanych skryptów pod katem bezpieczeństwa oraz opinię, czy takie "coś" będzie trudne do złamania dla bota?

Pozdrawiam

Ten post edytował puz219 16.02.2009, 13:50:12
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 00:47