Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Blokada $_GET poza kilkoma wyjątkami...
Forum PHP.pl > Forum > PHP
poison.Pluto
Witam, chciałbym zablokować wszystkie zmienne GET oprócz tych, które podałem w tablicy. Napisałem już jakiś kodzik tylko, że nie chce działać.

  1. <?php
  2.  
  3. $dozwolone = array (1, 2, 3, 'bla');
  4.  
  5. foreach ( $dozwolone as $dozw ) 
  6. {
  7. if ( ! isset ( $_GET[$dozw] ) && ereg ( '?', $_SERVER['REQUEST_URI'] ) )
  8. {
  9. die ("Usuń niedozwolone zmienne GET");
  10. }
  11. }
  12.  
  13. ?>


Problem w tym, że foreach wykonuje ten kod tyle razy ile jest elementów w tablicy. I teraz jeżeli już nawet jest zdefiniowane np. $_GET[1] to i tak przy $dozw = 2 zablokuje mi dostęp mimo, że jedyna zdefiniowana zmienna GET jest prawidłowa. I teraz moje pytanie - jak zrobić, żeby działało? smile.gif
Wave
  1. <?php
  2. $dozwolone = array (1, 2, 3, 'bla');
  3. foreach ( $_GET as $key => $value )  
  4. {
  5. if ( !in_array($key, $dozwolone ) )
  6. {
  7. die('Usuń niedozwolone ...');
  8. }
  9. }
  10. ?>

...ale po co to?
poison.Pluto
Dzięki, o to właśnie chodziło smile.gif

Można powiedzieć, że to jeden z moich "antyhacków"...
ave
Cytat(poison.Pluto @ 2006-01-19 21:21:11)
Można powiedzieć, że to jeden z moich "antyhacków"...

ale co Ci z wyrzucania nazwa getow których nie używasz w skrypcie ?
poison.Pluto
Wydaje mi się, że jeżeli ktoś będzie znać nazwy zmiennych to przy włączonym register_globals może coś nabałaganić.
C@rdel
Może nabałaganić, jeśli opierasz sie na register_globals, czyli używasz $zmienna zamiast $_GET['zmienna']. Jeśli uzywasz tablic superglobalnych nic ci nie grozi (przynajmniej od tej storny winksmiley.jpg )
poison.Pluto
Staram się używać zmiennych superglobalnych ale zawsze może mi coś umknąć... smile.gif Lepiej się zabezpieczyć na wszelki wypadek tongue.gif W dodatku można to rozbudować, zrobić coś w rodzaju logów i od razu można zobaczyć kto kombinuje.
Apo
ehh. To jak pisesz na localu to wyłącz w php.ini register globals = off.
Jak jak chcesz patrzeć kto co robi to poczytaj o tym: http://www.strefaphp.net/artykul8.html
poison.Pluto
Pisze na localu, ale staram się pisać pod róźne konfiguracje winksmiley.jpg Logowanie samych groźnych akcji mi raczej wystarczy, ale dzięki za link.


PS. W artykule $_SERVER['HTTP_USER_AGENT'] powinno zostać przefiltrowane przed dodaniem do pliku...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.