2min Devops

How to: Een veilig loginscript maken in php

Pagina’s beveiligen

Heel leuk en aardig een dergelijk inlogscript maar hoe kan ik nu pagina’s of delen van pagina’s beveiligen. Dit is nu heel simpel hiervoor neem ik weer het config bestand.

PHP Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?
// Config bestand zoals hij al was
// Database settings
 
// dit is in de meeste gevallen localhost
$host = "localhost";
// gebruikersnaam van de database
$name = "";
// wachtwoord van de database
$pass = "";
// database naam
$db_n = "";
 
mysql_connect($host,$user,$pass);
mysql_select_db($db_n);
 
// nieuwe code
//Bekijken of degene wel is ingelogd maar nog geen sessie heeft.
if ($_COOKIE['user_id'] AND $_COOKIE['user_pass'] AND !$_SESSION['user_id'] AND !$_SESSION['user_name'])
{
	// Gebruikersgegevens doormiddel van het cookie uit de database halen.
            $query = "SELECT id,username FROM users WHERE id = '".$_COOKIE['user_id']."' AND password = '".$_COOKIE['user_pas']."'";
	$result = mysql_query($query) or die (mysql_error());
	$rij = mysql_fetch_array($result);
             // Sessies aanmaken
	$_SESSION['user_id'] = $rij['id'];
	$_SESSION['user_name'] = $rij['username'];
}
?>

Zoals je wellicht ziet word er eerst gecontroleerd of de gebruiker wel is ingelogd. Als degene is ingelogd word er gekeken of er al sessies voor hem bekend zijn, als dit niet het geval is wordt het record uit de database gehaald en vervolgens in een sessies gezet. Include deze file dus op elke pagina om te controleren of iemand is ingelogt of niet.

Op deze manier kun je nu heel gemakkelijk in elke pagina controleren of degene er wel mag komen of niet.

PHP Code

1
2
3
4
5
6
7
8
9
10
11
<?
ob_start();
session_start();
if (isset($_SESSION['user_id']))
{
echo"Hallo".$_SESSION['user_name']. "welkom op het beveiligde gedeelte";
} else {
echo"Je bent niet ingelogd";
}
ob_end_flush();
?>

Zoals je hoogwaarschijnlijk wel begrijpt kun je dit script zo veel uitbreiden als je wilt, bijvoorbeeld niveaus toekennen aan gebruikers wie mag wel ergens komen wie niet, hier ga ik alleen niet verder over door dit mogen jullie zelf uit zoeken ;). Ik hoop dat deze tutorial een beetje duidelijk was en je een beetje zicht heeft gegeven hoe je een goed login script maakt