Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zabezpieczenie injection zbyt dokładne?
Dopler
post
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 30.01.2008

Ostrzeżenie: (0%)
-----


Mam bazę nazwisk z informacjami. Rekordy wywołuję przez zmienną nazwisko=xxxxx

Jednak żeby się zabezpieczyć przed zhakowaniem całej bazy przez wpisanie nazwisko=a% lub nazwisko=a_
stworzyłem ifa

if(!preg_match("/%/", $nazwisko)&&!preg_match("/_/", $nazwisko))

i działa super - tylko że jest zbyt dokładny - bo są nazwiska takie jak d'Haute (z apostrofem)
i to nazwisko jest wyłapywane jako zhakowanie

jest jakiś sposób żeby zostawić zabezpieczenie ale żeby apostrof nie był brany pod uwagę? I skąd ten apostrof skoro skryptu nie uczulałem na niego?

a może to zabezpieczenie robi się inaczej ?

podgląd bazy jest tu: http://powstanie.okiem.pl

Ten post edytował Dopler 18.06.2012, 18:07:11
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Dopler
post
Post #2





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 30.01.2008

Ostrzeżenie: (0%)
-----


kurcze ... muszę chyba jeszcze raz opisać problem dokładniej - bo przedtem zrobił skrót i widzę że chyba problem leży gdzie indziej

wyszukiwanie mam 2 stopniowe - najpierw wg litery szuka zestawów pierwszych trzech liter
a potem wg tego zestawu szuka nazwisk

nazwisko=d'Haute - działa
ale nie działa wcześniejszy stopień

w tym wcześniejszym stopniu mam jeszcze liczenie znaków
if - wygląda więc tak

if(strlen($lettertwo)==3&&!preg_match("/%/", $lettertwo)&&!preg_match("/_/", $lettertwo)

gdy wywalam strlen - to funkcja działa - a więc to w niej jest coś co chyba nie zlicza apostrofu (a także spacji)
próbowałem z mb_strlen oraz iconv_strlen - i bez rezultatu


Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 16:45