Ik heb een php applicatie gemaakt, maar wil deze uiteraard ook beveiligen.
Mijn beveiliging bestaat uit:
- Ten eerste een IP Check. Als je op een bepaald ip adres zit is inloggen niet nodig.
- Als je niet op dit IP adres zit, wordt je dooorverwezen naar login.php
- Als je correct inlogt, wordt je sessie gestart en wordt je doorverwezen naar index.php
Mijn probleem: Als je dus buiten het onbeveiligde IP adres zit, en wil inloggen, kom je prima op de login pagina, maar, als je klikt op inloggen, is de session start blijkbaar te sloom voor de page refresh?
Is het echt zo dat een session aanmaken zo sloom is of zit er een fout in mijn pagina?
En hoe kan ik dit eventueel oplossen?
Groetjes Feiko
P.S. Hieronder bijgevoegd gedeeltelijk de code van iptest.php en login.php.
login.php:
<? if ($naaminputc==$naamdbc) {
mysqli_query($con,"INSERT INTO Logins (naam, login_id, ip, date, correct) VALUES ('$naaminputc', '$code', '$clientip', '$datum', 'ja')");
$_SESSION['luser'] = $naaminputc;
$_SESSION['start'] = time();
$_SESSION['expire'] = $_SESSION['start'] + (30 * 60);
header('Location: http://xxxxxx.nl/index.php');
} ?>iptest.php
<? $clientip = $_SERVER['REMOTE_ADDR'];
if($clientip !='xx.xx.x.xxx'){
$now = time();
session_start();
if (!isset($_SESSION['luser'])) {
header('Location: http://www.xxxxxxx/login.php');
}
elseif ($now > $_SESSION['expire']){
session_destroy();
header('Location: http://www.xxxxxx/login.php');
}
else {}
} ?>[size=xsmall]Toevoeging op 16/06/2015 16:11:35:[/size]
Comment: Ik heb het ook geprobeerd met de HTML Refresh (<META HTTP-EQUIV="refresh" CONTENT="5; URL=http://www.xxxxxx.nl/index.php">)
En bij 5 seconden werkte het op de pc, maar op een smartphone nog niet. Verder is dit een ontzettend irritante manier, omdat je bij een login lang moet wachten, en gebruikers dan geirriteerd raken en het nog een keer proberen etc.
Dus als iemand een andere oplossing heeft, zou fantastisch zijn.