Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]preg_match i błąd
Forum PHP.pl > Forum > Przedszkole
hyhyhy
Witam,

W pliku dodającym rekordy do bazy staram się usunąć niebezpieczne znaki - standardowa procedura. Korzystałem z manuala układając skrypt, a mimo to wywala mi błąd - czy ktoś mógłby mi wskazać, co robię źle?

skrypt:
  1. $wyrazenie_gotowe1 = strtolower($wyrazenie_trimmed);
  2. //-------------------------------------------------------//
  3. $wyrazenia = array(); //deklaracja tablicy
  4. $wyrazenia[0] = '/insert/'; //wyrazenia zabronione
  5. $wyrazenia[1] = '/select/';
  6. $wyrazenia[2] = '/where/';
  7. $wyrazenia[3] = '/""/';
  8. $wyrazenia[4] = '/``/';
  9. $wyrazenia[5] = '/\/';
  10. $wyrazenia[6] = '/=/';
  11. $wyrazenia[7] = '/union select/';
  12. $wyrazenia[8] = '/from/';
  13. $wyrazenia[9] = '/into/'; //az dotad
  14. //------------------------------------------------//
  15. $zastepstwa = array(); //na co maja byc zastepowane kolejno
  16. $zastepstwa[9] = 'umiesc';
  17. $zastepstwa[8] = 'wybierz';
  18. $zastepstwa[7] = 'gdzie';
  19. $zastepstwa[6] = '/ /';
  20. $zastepstwa[5] = '/ /';
  21. $zastepstwa[4] = '/ /';
  22. $zastepstwa[3] = '/ /';
  23. $zastepstwa[2] = '/wybierz/';
  24. $zastepstwa[1] = '/z/';
  25. $zastepstwa[0] = '/do/'; //az dotad
  26. //--------------------------------------------//
  27. $wyrazenie_gotowe = preg_replace($wyrazenia, $zastepstwa, $wyrazenie_gotowe1);


A blad wyglada tak, ze Warning: preg_replace() [function.preg-replace]: No ending delimiter '/' found
wywala go w ostatniej linii, przy preg_replace, ale rozumiem, ze problem ma wczesniej, tylko nie wiem gdzie, wszedzie mam '/' na swoim miejscu chyba?

Pytanie drugie: czy ktoś ma pomysł, jak zapisać do $wyrazenia znak ' ?
wookieb
Cytat
W pliku dodającym rekordy do bazy staram się usunąć niebezpieczne znaki - standardowa procedura

Nie no słówko insert jest strasznie niebezpieczne. Dosłownie ciarki przeze mnie przechodzą jak je słyszę.
Mam pomysł. Zgłoś swoje imię i nazwisko do słów niebezpiecznych a na pewno przyczynisz się do bezpieczeństwa małych MySQL-elków, które dzięki tobie będą mogły żyć spokojnie
A tak bardziej serio to weź ty się zainteresuje mysql_real_scape_string bo takich kosmosów to od 10 lat się NIE ROBI.
hyhyhy
wybacz, ale nie mam pojęcia co się robi lub nie od 10 lat, bo php/mysql uczę się od bardzo niedawna? W kazdym razie dzięki, poczytam.
wookieb
P.s. Co do tematu spójrz na linię 9 listingu w twoim pierwszym poście. Edytor Ci podpowiedział. Co nie zmienia faktu, że ta metoda zabezpieczenia i tak jest bezużyteczna.
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.