Jump to content

Recommended Posts

I never get my variable 'response' after i submit my values

 

Anybody an idea how to solve this problem??

 

<?php 
ini_set('display_errors', 1); // 0 = uit, 1 = aan 
error_reporting(E_ALL); 

session_start(); 

// Session hijacking voorkomen (dit op elke pagina waarvoor men ingelogd hoort te zijn doen !) 
if( isset( $_SESSION['huidig_ip'] ) AND $_SESSION['huidig_ip'] != $_SERVER['REMOTE_ADDR'] ) 
{ 
  // IP-adres waarmee paginarequest gemaakt wordt is niet gelijk aan IP-adres in sessie: sessie verwijderen. 
  // Geen melding tonen whatsoever, dit is waarschijnlijk een hacker die bezig is. 
  session_unset(); 
  session_destroy(); 
  die(); 
} 

//@mysql_connect( 'localhost', '...', '...' ) or trigger_error( mysql_error() ); 
//@mysql_select_db( '...' ) or trigger_error( mysql_error() ); 
include_once $_SERVER["DOCUMENT_ROOT"]."/new_site_v2/includes/connect.php";


// Deze functie genereert een willekeurige string 
function genereer_string( $lengte ) 
{ 
  srand( ( (double) microtime() ) * 1000000 ); 
  $string = ''; 

  // De parser doet irri met zoveel tekens zonder spaties achter elkaar, dus verdeel ik dit ff over meerdere regels 
  $tekens = 'abcdefghijklmnopqrstuvwxyz'; 
  $tekens .= 'ABCDEFGHIJKLMNOPQRSTUWXYZ'; 
  $tekens .= '01234567890123456789'; 

  for( $i = 0; $i < $lengte; $i++ ) 
  { 
    $string .= $tekens{ rand( 0, ( strlen( $tekens ) - 1 ) ) }; 
  } 

  return $string; 
} 

if( isset( $_POST['username'], $_POST['response'], $_SESSION['challenge'] ) ) 
{ 
  $query = "SELECT * FROM tabel WHERE username = '" . $_POST['username'] . "' LIMIT 0,1"; 
  $result = mysql_query( $query ) or trigger_error( mysql_error() ); 
  if( mysql_num_rows( $result ) == 0 ) 
  { 
    echo 'Ongeldige gebruikersnaam en/of wachtwoord1'; 
  } 
  else 
  { 
    $rij = mysql_fetch_assoc( $result ); 

    // Response genereren en vergelijken met wat er opgestuurd is 
    if( sha1( $rij['password'] . ':' . $_SESSION['challenge'] ) != $_POST['response'] ) 
    { 
	echo "1: ". sha1( $rij['password'] . ':' . $_SESSION['challenge']);
	echo "<br>";
	echo "2:". $_POST['response'];
	echo "<br>";
      // Exact dezelfde melding tonen als wanneer de gebruikersnaam niet in de tabel gevonden kon worden. 
      // Hier een andere melding tonen zou de hacker alleen maar inzicht geven over in hoeverre zijn hackpogingen werken. 
      echo 'Ongeldige gebruikersnaam en/of wachtwoord2'; 
    } 
    else 
    { 
      // Gebruiker succesvol ingelogd, gegevens opslaan in sessie enzo ... 
      echo 'Yay ! Succesvol ingelogd !'; 
    } 
  } 
} 

// Ik check hier pas of het IP-adres al in de sessie staat en niet bij het session hijacking gedeelte. 
// Dit omdat het IP-adres in de sessie moet staan VOORDAT er een postback gedaan wordt. 
// Nou is het in dit kleine scriptje zo dat ik het daar wel neer had kunnen zetten, omdat de challenge ook pas aan het einde 
// van het PHP deel gegenereerd wordt, maar ik weet niet hoe jij dit script exact gaat implementeren, en ik wil je er wel ff 
// op attenderen dat je erop moet letten dat een postback niet geldig is wanneer er geen IP-adres / challenge in de sessie 
// staat. 
if( isset( $_SESSION['huidig_ip'] ) == FALSE ) 
{ 
  $_SESSION['huidig_ip'] = $_SERVER['REMOTE_ADDR']; 
} 

// Elke keer dat de pagina aangevraagd is, of er nou een postback gedaan is of niet, de challenge opnieuw genereren ! 
$challenge = genereer_string( 255 ); 
$_SESSION['challenge'] = $challenge; 
?> 

<script type="text/javascript" src="sha.js"></script> 

<script type="text/javascript"> 
<!-- 
function createResponse() 
{ 
  document.getElementById( 'response' ).value = hex_sha1( hex_sha1( document.getElementById( 'password' ).value ) + ":" + document.getElementById( 'challenge' ).value ); 
  document.getElementById( 'password' ).value = ""; 
  document.getElementById( 'challenge' ).value = ""; 
  return true; 
} 
//--> 
</script> 

<form action="login.php" method="post" onsubmit="return createResponse();"> 
  <div> 
    Username: <input type="text" name="username"> 
    Wachtwoord: <input type="password" id="password"> 
    <input type="hidden" id="challenge" value="<?php echo $challenge; ?>"> 
    <input type="hidden" name="response" id="response" value=""> 
    <input type="submit" value="Log in !"> 
  </div> 
</form> 



Link to comment
https://forums.phpfreaks.com/topic/66158-variable-not-posted/
Share on other sites

i would like to reduce my code but i didn't know where the error could be.

 

possible it is in this section:

 

<script type="text/javascript" src="sha.js"></script> 

<script type="text/javascript"> 
<!-- 
function createResponse() 
{ 
  document.getElementById( 'response' ).value = hex_sha1( hex_sha1( document.getElementById( 'password' ).value ) + ":" + document.getElementById( 'challenge' ).value ); 
  document.getElementById( 'password' ).value = ""; 
  document.getElementById( 'challenge' ).value = ""; 
  return true; 
} 
//--> 
</script> 

<form action="login.php" method="post" onsubmit="return createResponse();"> 
  <div> 
    Username: <input type="text" name="username"> 
    Wachtwoord: <input type="password" id="password"> 
    <input type="hidden" id="challenge" value="<?php echo $challenge; ?>"> 
    <input type="hidden" name="response" id="response" value=""> 
    <input type="submit" value="Log in !"> 
  </div> 
</form> 


Link to comment
https://forums.phpfreaks.com/topic/66158-variable-not-posted/#findComment-330931
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.