login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Sessie met IP vergelijken

Offline ikki007 - 19/12/2006 17:15
Avatar van ikki007Gouden medailleGouden medaille

PHP ver gevorderde
Hoi,

Ik wile een stukje extra beveiliging inbouwen..
Ik sla de IP al op in een sessie, maar ik wil nu dat op elke memberpagina wordt gecontroleerd of de IP gelijk is aan de IP waarmee is ingelogd.

Mijn vraag, hoe kan ik deze vergelijken.. Het ophalen lukt me nog wel..

Ikki

7 antwoorden

Gesponsorde links
Offline rutgerp - 19/12/2006 17:23 (laatste wijziging 19/12/2006 18:00)
Avatar van rutgerp HTML interesse
  1. if($_SERVER['REMOTE_ADDR'] != $_SESSION['sess_ip']) {
  2. // invalid session / hack
  3. die();
  4. }
dacht ik
edit: dit is een verbeterde versie:
  1. <?
  2. // deze code kijkt naar ip: XXX.XXX.???.???
  3. $jouw_login_url = 'http://www.domain.ext/login.php';
  4.  
  5. $ip = explode('.',$_SERVER['REMOTE_ADDR']);
  6. $sess_ip = explode('.',$_SESSION['sess_ip']);
  7. $first_ip = $ip[0].'.'$ip[1];
  8. $first_sess_ip = $sess_ip[0].'.'.$sess_ip[1];
  9. if($first_ip != $first_sess_ip) {
  10. // invalid session / hack
  11. header("Location: ".$jouw_login_url);
  12. die('<script>window.location=\''.$jouw_login_url.'\';</script>');
  13. }
Offline Gerard - 19/12/2006 17:29
Avatar van Gerard Ouwe rakker Hou er rekening mee dat het niet altijd zo hoeft te zijn dat wanneer het ip niet overeenkomt iemand gelijk een hacker is. Als ik op lokatie 1 inlog op de website met mijn laptop, ik klap hem dicht en ga naar huis en bezoek daar je site weer (omdat mijn venster open is blijven staan) zou je mij behandelen als een hacker omdat je een die() neergooit.

Gewoon netjes iemand terug sturen naar de website met eventueel een gepaste melding. Het is sowieso nooit netjes om een die erin te gooien als iemand een illegale activiteit uitvoert. Het hoeft namelijk niet altijd zo te zijn dat iemand dat opzettelijk doet.
Offline timo - 19/12/2006 17:59
Avatar van timo PHP ver gevorderde of diegene moet daar echt niets te zoeken hebben -> je config.php of je MySQL class bv. die moet je ook uitsluiten van indexering etc..
Offline ikki007 - 19/12/2006 17:59
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
  1. if($_SERVER['REMOTE_ADDR'] != $_SESSION['ip']) {
  2.  
  3. echo "<b>Ongeldige sessie.</b><br>
  4. Je wordt doorverbonden, een moment geduld.<br><br>
  5. <img src=\"images/doorverbinden.gif\">";
  6.  
  7. header('Refresh: 4;URL=index.php?pagina=inloggen');
  8. exit();
  9. }


Is dit wel netjes?
Offline Gerard - 19/12/2006 18:01
Avatar van Gerard Ouwe rakker Nee want je hebt output naar de browser voor het zenden van een header(). Dat houdt in dat je waarschijnlijk gebruik maakt van ob_start() wat dus niet netjes is 

Maar voor de rest is het wel correct ja 
Offline ikki007 - 19/12/2006 18:10
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Wat is er niet netjes aan ob_start(), die staat namelijk op elke pagina waar ik met header werk (en dat is veel)
Offline rutgerp - 19/12/2006 18:28
Avatar van rutgerp HTML interesse Je moet zorgen dat de output aan het einde komt, dat kan je het beste doen met een template parser.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.194s