login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Beveiliging

Offline X3ore - 18/09/2006 23:04
Avatar van X3oreHTML interesse Hoi 

Ik beveilig mijn admin via deze functie:
  1. <?
  2. function beveiliging($beveiliging){
  3. if(empty($_COOKIE['gebruikersnaam'])){
  4. header("location: ?source=home");
  5. }
  6. else {
  7. $select = "SELECT * FROM gebruikers_systeem WHERE gebruikersnaam = '".$_COOKIE['gebruikersnaam']."'";
  8. $query = mysql_query($select)or die(mysql_error());
  9. $aantal = mysql_num_rows($query);
  10.  
  11. if($aantal == "0"){
  12. header("location: ?source=home");
  13. }
  14. else{
  15. $list = mysql_fetch_object($query);
  16. if($beveiliging == "1"){
  17. if($list->status != "Administrator"){
  18. header("location: ?source=home");
  19. }
  20. else {
  21. //Toegang :)
  22. }
  23. }
  24. elseif($beveiliging == "2"){
  25. if($list->status != "Administrator" && $list->status =! "Gebruiker"){
  26. header("location: ?source=home");
  27. }
  28. else {
  29. //Toegang :)
  30. }
  31. }
  32. else {
  33. header("location: ?source=home");
  34. }
  35. }
  36. }
  37. }


Maar als ik deze actie bijvoorbeeld uitvoer zonder admin of ingelogd te zijn voert hij deze toch uit.

index.php?source=administratiepaneel&cat=3&beheer=gastenboek&actie=verwijderen&id=2&verzenden=ja

Hoe kan ik dit beveiligen?

2 antwoorden

Gesponsorde links
Offline Wijnand - 19/09/2006 09:34
Avatar van Wijnand Moderator Heb je de code waar deze functie wordt aangeroepen? Want een functie op zichzelf doet niets hé.

Verder is het een idee om de else waar //toegang in staat weg te halen. Dit heeft geen enkele nut. Zo zitten er wel meer slordigheden in (bv "dubbele quotes").
Offline Thomas - 19/09/2006 15:48 (laatste wijziging 19/09/2006 15:49)
Avatar van Thomas Moderator Een header wordt pas uitgevoerd nadat het HELE script is uitgevoerd.

Als je dus zoiets hebt:
  1. <?php
  2. if(!$ingelogd)
  3. {
  4. header("Location: somewhere_else.php");
  5. }
  6.  
  7. mysql_query("DROP TABLE whatever");
  8. ?>


Dan wordt eerst je table whatever gedropt, en dan wordt je geredirect .

Wat je dus moet doen is het script beeindigen nadat je header() hebt aangeroepen:

  1. <?php
  2. if(!$ingelogd)
  3. {
  4. header("Location: somewhere_else.php");
  5. exit(); // stoppen!!!
  6. }
  7.  
  8. mysql_query("DROP TABLE whatever");
  9. ?>


Als ik jou was, zou ik hier toch wat meer kaas van gaan eten, want het werkt niet echt in je voordeel als je je eigen beveiligingsmiddelen niet snapt.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.211s