login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Pagina script veilig genoeg?

Offline Grayen - 28/02/2007 21:33
Avatar van GrayenPHP ver gevorderde Ik heb even snel een pagina script gemaakt, alleen nu zou ik graag weten zien jullie nog veiligheidsfouten? Aangezien pagina script vaak onveilig zijn en ik niet veel weet over hoe mensen site hacken, zou ik graag willen weten of jullie in die script nog grote veiligheidsfouten zien?

De inhoud van de map en die van de $aFiles['file'] is als volgt:

  1. (
  2. [0] => 404.php
  3. [1] => home.php
  4. [2] => test.php
  5. )


  1. <?php
  2. // Configuratie basis gegevens.
  3. $sDir = './pages';
  4. $sExtensie = 'php';
  5. $sGet = 'p';
  6. $sDefault = 'home';
  7. $sError = '404';
  8.  
  9. // Het openen van de map met daarin alle includes.
  10. $inc = new file($sDir);
  11. $aFiles = $inc->open();
  12.  
  13. // Kijken welk bestand geinclude moet worden.
  14. $sFile = isset($_GET[$sGet]) ? file_exists($sDir.'/'.$_GET[$sGet].'.'.$sExtensie) ? $_GET[$sGet] : $sError : $sDefault;
  15.  
  16. // Controleerd of het bestand zich wel in de map bevindt.
  17. if(in_array($sFile.'.'.$sExtensie, $aFiles['file']))
  18. {
  19. // Include het bestand.
  20. include $sDir.'/'.$sFile.'.'.$sExtensie;
  21. }
  22. ?>


Bij voorbaat dank,

Grayen

5 antwoorden

Gesponsorde links
Offline Wim - 28/02/2007 22:54
Avatar van Wim Crew algemeen file_exists($sDir.'/'.$_GET[$sGet].'.'.$sExtensie)

aangezien $sDir ervoor staat lijkt het mij veilig... beter is imo een path instellen, bvb: /home/user/public_html/
Offline Gerard - 01/03/2007 01:29
Avatar van Gerard Ouwe rakker Ik probeer zelf altijd zoveel mogelijk te werken met absolute paden en niet meer met relatieve paden. Verder zet ik alle pagina's die je mag oproepen in de database waar dan de filename vermeld staat. Op die manier kan iemand dus nooit een pagina opvragen die niet in het systeem staat.

Natuurlijk heb ik dit weer uitgebried met access restrictions, usergroups, functions met inheritance en de rest van de meuk.

Maar je scriptje ziet er dus goed uit.
Offline Grayen - 01/03/2007 13:18 (laatste wijziging 01/03/2007 13:28)
Avatar van Grayen PHP ver gevorderde Bedankt voor de tips , ik ga nu gebruik maken van absolute paths.

@proximius, ik vind het makkelijker om een array te laten generen met daarin alle bestanden in een map van includes, dan om elke pagina apart in te gaan stellen. Qua veiligheid lijkt mij dat er geen verschil is tussen beiden, want op mijn manier kunnen ze ook alleen bestaande bestanden includen (als ik dat van absolute paths instel).

Ik ga een goed kijken naar die andere dingen die jij vernoemde, ben namelijk net bezig met mijn authorisatie classe.

Voor de absolute path kan ik toch $_SERVER['DOCUMENT_ROOT'] gebruiken of kan ik hem beter handmatig invoeren?
Offline marten - 01/03/2007 13:29
Avatar van marten Beheerder Handmatig lijkt mij beter. Een superglobal kan je aanpassen (denkend aan $_SERVER['remote_addr'] en dergelijke)
Offline Grayen - 01/03/2007 13:32 (laatste wijziging 01/03/2007 14:09)
Avatar van Grayen PHP ver gevorderde Ik zat idd ook aan $_SERVER['REMOTE_ADDR'] te denken, maar ik dacht, omdat $_SERVER['DOCUMENT_ROOT'] niks met de bezoeker te maken heeft, dat ik hem daarom wel veilig gebruiken kon.

Weet iemand een goede tutorial om een goed authorisatie script te maken? Ik zat zelf te denken aan:

* controle op rechten, zo is bijvoorbeeld #1 iets mogen posten in forum en #2 dingen mogen plaatsen bij tutorials, waarbij ik gebruik maak van deze manier van tellen, 1, 2, 4, 8, 16, 32, 64, zodat ik zeker weet dat iemand het recht zeker weten heeft.

* Alle leden in groepen delen, waarbij elke groep zijn eigen standaard rechten heeft, die apart kunnen worden aangepast indien nodig.

Weet iemand nog iets beters, extra's of een goede tutorial?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.193s