josvink66
Gebruiker
- Lid geworden
- 18 okt 2006
- Berichten
- 699
hoi ik heb deze code hier van deze site geplukt.
maar kan iemand mij helpen met het invullen met het @mysql_connect
mijn host is www.funpic.org en die onder steunt
onderandere: Webhosting PHP / MySQl
kan iemand mij pleas helpen.
PHP:
<?php
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() );
// 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'] )
{
// 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="sha1.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>
maar kan iemand mij helpen met het invullen met het @mysql_connect
mijn host is www.funpic.org en die onder steunt
onderandere: Webhosting PHP / MySQl
kan iemand mij pleas helpen.