Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Stare Eregi
Forum PHP.pl > Forum > Przedszkole
smietek
W pewnym skrypcie znalazłem taki kod:

  1. foreach ($_GET as $u_url){
  2. if ((eregi("<[^>]*script*\"?[^>]*>", $u_url)) || (eregi("<[^>]*object*\"?[^>]*>", $u_url)) ||
  3. (eregi("<[^>]*iframe*\"?[^>]*>", $u_url)) || (eregi("<[^>]*applet*\"?[^>]*>", $u_url)) ||
  4. (eregi("<[^>]*meta*\"?[^>]*>", $u_url)) || (eregi("<[^>]*style*\"?[^>]*>", $u_url)) ||
  5. (eregi("<[^>]*form*\"?[^>]*>", $u_url)) || (eregi("\([^>]*\"?[^)]*\)", $u_url)) ||
  6. (eregi("\"", $u_url))){
  7. die ();}}


Gdy zaczynałem uczyć się PHP, już wtedy każdy trąbił, że ereg jest przestarzałe, dlatego uczyłem się od razu pisać wyrażenia pod funkcje z rodziny preg.
Czy mógłby mi ktoś wytłumaczyć (nie chcę gotowego rozwiązania w postaci wyrażenia dla preg), czego to szuka?
bastard13
Tak na pierwszy rzut oka, to wydaje mi się, że sprawdza czy w zmiennej wystąpiły znaczniki html (script, meta, iframe, form,applet, object, style), jeżeli tak to kończy skrypt.
wookieb
A mianowicie jest to jakaś marna próba zabezpieczenia $_GET przed wymienionymi htmlowymi znacznikami albo ochrona przed xss.
smietek
Tak w ogóle to opłaca się jeszcze trzymać ten kod?
Oczywiście po przepisaniu go na pregi, a właściwie na jednego prega, nie potrzeba kilku...
I przy okazji, dlaczego to marna próba?
wookieb
Nie warto ponieważ puszczenie xssa inną drogą nadal jest możliwe. Blokowanie xss robi sie na innych etapach. Blokowanie html-a tez na innych etapach.
smietek
A mógłbyś rozwinąć, na jakich to etapach (ten kod jest prawie na samym początku całego skryptu)?
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.