Problemen bij beveiligen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rob

Rob

09/06/2006 10:58:00
Quote Anchor link
eeej all ik heb een probleem bij het beveiligen van me member systeem maybe weet iemand raad.

als een persoon zich inlogt dan worden de volgende sessies aangemaakt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
session_start();
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
$_SESSION['login'] = $login ;
$_SESSION['memberid'] = $memberid;
$_SESSION['gebruikerniveau'] = $gebruikerniveau;
$serial = serialize($_SESSION);
$md5 = md5(md5(md5($serial)));
$_SESSION['hash'] = $md5;
?>


bij de pagina die ik wil beveiligen heb ik dit gedaan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
session_start();
if ($_SESSION['ip'] != $_SERVER['REMOTE_ADDR']){
session_destroy();
die('Hacking attempt!');
}
else{
if(!isset($_SESSION['memberid']) && !isset($_SESSION['gebruikerniveau'])){
echo ("Om deze pagina te kunnen bekijken moet je ingelogd zijn");
}
else{
    session_start();
    $session_data = $_SESSION;
    unset($session_data['hash']);
    $serial = serialize($session_data);
    $md5= md5(md5(md5($serial)));
if ($_SESSION['hash'] != $md5){
session_destroy();
die('Hacking attempt!');
}
else{
 /* HIER KOMT DAN DE PAGINA */
}
?>


toch zegt de website steeds 'Hacking attempt!'. Ik heb nog eens gekeken naar de tutorial 'Sessie en veiligheid' maar daar staat het ook zo beschreven. Een echte fout zie ik zo niet. maar misschien zie ik weer wat over het hoofd en kunnen jullie me helpen.
Gewijzigd op 01/01/1970 01:00:00 door Rob
 
PHP hulp

PHP hulp

12/12/2024 14:25:16
 
Rob

Rob

09/06/2006 11:59:00
Quote Anchor link
het moet liggen aan het controleren van de session hash zovlug ik deze eruit haalw erkt script weer prima.
 
Klaasjan Boven

Klaasjan Boven

09/06/2006 12:08:00
Quote Anchor link
Maak de eerste die() eens iets anders

bijv Watch out: Hacking attempt

dan weet je iig zeker welke de fout geeft.
 
Rob

Rob

09/06/2006 12:13:00
Quote Anchor link
IP control werkt (2e keer ;))
 
Willem Jan Z

Willem Jan Z

09/06/2006 13:31:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
30
31
32
33
34
35
36
37
<?php

$login
= 'test';
$memberid = 2;
$gebruikerniveau = 4;

session_start();
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
$_SESSION['login'] = $login ;
$_SESSION['memberid'] = $memberid;
$_SESSION['gebruikerniveau'] = $gebruikerniveau;
$serial = serialize($_SESSION);
$md5 = md5(md5(md5($serial)));
$_SESSION['hash'] = $md5;


if ($_SESSION['ip'] != $_SERVER['REMOTE_ADDR']){
session_destroy();
die('Hacking attempt!');
}
else{
if(!isset($_SESSION['memberid']) && !isset($_SESSION['gebruikerniveau'])){
echo ("Om deze pagina te kunnen bekijken moet je ingelogd zijn");
}
else{
    $session_data = $_SESSION;
    unset($session_data['hash']);
    $serial = serialize($session_data);
    $md5= md5(md5(md5($serial)));
if ($_SESSION['hash'] != $md5){
session_destroy();
die('Hacking attempt!');
}
else{
 echo 'Je bent ingelogd';
}
}
}


?>


Dit werkt bij mij...
Je had 2 } te weinig, en een session_start teveel.

Zet voortaan dit boven je scripts:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
error_reporting(E_ALL);
// Geeft alle errors weer die je maar kan krijgen
// Zo zie je precies waar het mis gaat.

?>
 
Rob

Rob

09/06/2006 13:42:00
Quote Anchor link
Willem-Jan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
Dit werkt bij mij...
Je had 2 } te weinig, en een session_start teveel.
[
/quote]

die 2 } staan er maar die was ik idd vergeten bij te zetten :).
 
Willem Jan Z

Willem Jan Z

09/06/2006 14:20:00
Quote Anchor link
Maar werkt het nu?
 
Rob

Rob

09/06/2006 14:27:00
Quote Anchor link
Willem-Jan:
Maar werkt het nu?


nee :(
 
Rob

Rob

09/06/2006 14:31:00
Quote Anchor link
ik post maar nog eens de hele beveiligde pagina :):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
30
31
32
<?php
session_start();
$sessdata = $_SESSION;
    unset($sessdata['hash']);
    $sessdata_str = serialize($sessdata);
    $md5hash = md5(md5(md5($sessdata_str)));
if ($_SESSION['hash'] != $md5hash){
session_destroy();
die('Hacking attempt!');
}
else{
if ($_SESSION['ip'] != $_SERVER['REMOTE_ADDR']){
session_destroy();
die('Hacking attempt!');
}
else{
if(!isset($_SESSION['memberid']) && !isset($_SESSION['gebruikerniveau'])){
echo ("Om deze pagina te kunnen bekijken moet je ingelogd zijn");
}
else{
if ($gebruikerniveau >= 22){

/* De PAGINA IS DUS HIER */

}
}

elseif ($gebruikerniveau == 0){
echo ('Je acount is gebanned. neem contact op met de web-crew');
}
else{
echo ("Je bent niet gemachtigd om deze pagina te bekijken");
}
}
}
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Rob
 
Frank -

Frank -

09/06/2006 14:39:00
Quote Anchor link
Quote:
$md5 = md5(md5(md5($serial)));
Wat denk je hier te doen? De boel beter te beveiligen? Je of je 1, 2, 3 of zelfs 100x md5 toepast, de beveiliging wordt er echt niet beter van. Je stopt nog steeds dezelfde $serial in de functie...

Dit is schijnveiligheid. Ga eerst maar eens op zoek naar de zwakste schakel in jouw systeem, webserver en netwerkverbinding en als alles op een hetzelfde niveau is gebracht, ga je pas de lat hoger leggen. Gebruik je bijvoorbeeld wel SSL, heb je een eigen server in gebruik, etc. etc.

Edit: sha1() is trouwens een sterkere beveiliging dan md5().
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Rob

Rob

09/06/2006 14:42:00
Quote Anchor link
heb het nu 1 keer gedaan maar daarbij is het probleem nog altijd niet opgelost. en zoiezo ik ben nu bezig met alles beter te beveiligen :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.