Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Blokada wybranych znaków w formularzach
--czytacz--
post
Post #1





Goście







Witam,

Chcę w formularzach uniemożliwić wprowadzanie 4 znaków:
' " < >

Oczywiście w temacie bezpieczeństwa. Zamiana znaków na encje mnie nie urządza, urywanie ich i wprowadzanie reszty do bazy również. Chcę aby w przypadku wystąpienia takiego znaku wyświetlił mi się komunikat, że użyto niedozwolonych znaków. Czy jest na to jakaś inna metoda niż "ręczne" wklepanie procedury typu:
- wybierz string
- szukaj znaków
- zwróć błąd?

JS odpada, chcę zabezpieczyć serwis od strony serwera. Klient może sobie wyłączyć obsługę JS i całe zabezpieczenie bierze w łeb.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Czy jest na to jakaś inna metoda niż "ręczne" wklepanie procedury typu:
- wybierz string
- szukaj znaków
- zwróć błąd?
To tak jakbyś zapytał: czy można inaczej ruszyć samochodem niż
- włożyć kluczyk
- przekręcic
- wrzucic bieg i odjechać

Nie, nie ma innej metody smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Niktoś
post
Post #3





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Można by użyć wyrażeń regularnych do filtrowania danych wejściowych z inputów.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Niktoś ale to ni mniej ni więcej jest wymieniony podpunkt "- szukaj znaków", który autorowi się przecież nie podoba smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Niktoś
post
Post #5





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Faktycznie.Ech-zmień Mu układ klawiatury ,może się nie połapie gdzie jest <,lub>,',"-zawsze to jakiś sposób laugh.gif
Go to the top of the page
+Quote Post
--czytacz--
post
Post #6





Goście







od razu tak szydzić z przedszkolaka... tongue.gif

Bardziej chodziło mi o to czy może jest jakaś gotowa funkcja, w podobie do htmlspecialchars, która już ma wszystko przygotowane. Nie lubię wynajdywać koła od nowa.
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A kto tu szydzi? Zadałeś pytanie to ci grzecznie wyjaśniono co i jak tongue.gif

Nie ma funkcji, która robi te trzy rzeczy na raz. Do szukania możesz użyć wyrażeń regularnych jak wspomniał Niktoś


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Niktoś
post
Post #8





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Podobną funkcją do htmlspecialchars jest htmlentities,ale chyba także Cię to nie zainteresuje.Niestety nie ma tak dobrze,trzeba samemu troszeczkę się pomęczyć,żeby zabezpieczyć formularz.

Ten post edytował Niktoś 16.11.2011, 21:09:05
Go to the top of the page
+Quote Post
--czytacz--
post
Post #9





Goście







Spoko. Dzięki za info, biorę się do roboty bo czasu szkoda smile.gif
Go to the top of the page
+Quote Post
by_ikar
post
Post #10





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Bardzo proste wyrażenie załatwić może całą sprawę:

Kod
<?php


$dane_z_formularza = 'abcdef "< >"';

if(preg_match('#^[^><"]+$#is', $dane_z_formularza))
{
    echo 'poprwne dane';
} else
{
    echo 'błędne dane';
}


w nawiasie kwadratowym zaraz po daszku "^" podajesz znaki które mają nie wsytąpić w ciągu, w przypadku wystąpienia wyrażenie nie spełni wymagań i preg_match zwróci 0.
Go to the top of the page
+Quote Post
abort
post
Post #11





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


Cytat(nospor @ 16.11.2011, 20:39:59 ) *
To tak jakbyś zapytał: czy można inaczej ruszyć samochodem niż
- włożyć kluczyk
- przekręcic
- wrzucic bieg i odjechać

Nie, nie ma innej metody smile.gif

Był kiedyś (i czasami można na drodze jeszcze spotkać) taki wynalazek, jak Polski Fiat 126p. Potocznie zwany "maluchem". Odpalałem go kijem. Owszem, zdaję sobie sprawę, że wielu nie uznaje tego czterokołowca jako samochód, ale jednak maluch był samochodem, bo aby nim kierować, potrzebne było prawo jazdy smile.gif

P.S.
Przepraszam za offtopic smile.gif
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 09:56