![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 192 Pomógł: 0 Dołączył: 5.07.2015 Ostrzeżenie: (0%) ![]() ![]() |
Używam sprawdzenia w rejestracji:
używam zmiennej login w zapytaniu
Jak wpisze w loginie string z apostrofem w liczbie pazystej wyskakuje:
Czy preg_match przepuszcza apostrofy czy czegoś nie rozumiem ? (Pewnie to drugie). |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
1) Na chwile obecna nigdzie nie sprawdzasz czy $flaga to true czy false.
2) nie [a-zA-Z0-9_-] a [a-zA-Z0-9_\-] - to znak specjalny. 3) Dane wkladane to zapytania tak czy siak wypadaloby by ESCAPOWAC a juz najlepiej BINDowac. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 207 Pomógł: 40 Dołączył: 2.06.2016 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
preg_match nie jest dobrym narzędziem do filtrowania zmiennych zewnętrznych, które użyjesz w zapytaniu.
Poczytaj o trim, stripslashes, htmlspecialchars oraz wstrzykiwaniu szkodliwego zapytania SQL. -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@emstawicki no z calym szacunkiem ale jest lepsze od funkcji ktore ty wymieniles.
Poprawnosc loginu jak najbardziej trzeba sprawdzac jak kazdych innych pol. Zas co do escapowania to juz napisalem czego sie powinno uzyc. Funkcje ktore wymieniles tutaj sa totalnie zbedne i nie temu sluza -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
2) nie [a-zA-Z0-9_-] a [a-zA-Z0-9_\-] - to znak specjalny. Może się czepam ale nie jeśli występuje na końcu ![]() Cytat The minus (hyphen) character can be used to specify a range of characters in a character class. For example, [d-m] matches any letter between d and m, inclusive. If a minus character is required in a class, it must be escaped with a backslash or appear in a position where it cannot be interpreted as indicating a range, typically as the first or last character in the class.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@Pyton o widzisz
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 192 Pomógł: 0 Dołączył: 5.07.2015 Ostrzeżenie: (0%) ![]() ![]() |
Czyli jeśli chce aby login zawierał a-z 0-9 i "_" i "-"
1. to mam nie używać preg_match czy mam użyć tych funkcji trim strip.. html.. i dodatkowo preg_match żeby wyodrębnić _ i - ? |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
zapomnij o tych trzech funkcjach co podal mstawicki. One nie do tego sluza.
preg_match jest jak najabrdziej ok. Tylko pytanie, czy ty to potem poprawnie uzywasz tej $flaga -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 192 Pomógł: 0 Dołączył: 5.07.2015 Ostrzeżenie: (0%) ![]() ![]() |
tak używam poprawnie (tzn wszystko działa po za tymi apostrofami) bo nie chciałem stu linijek kodu wysyłać ogólnie sprawdzam flage tak:
ale co zrobić z tym apostrofem którego jak wpisze przy rejestracji wywołuje błąd oczywiści 2 apostrofy nie dają błędu. Ja to rozumiem tak jakby preg_match apostrof przepuszczało i traktowało jako koniec stringa przy 2 apostrofach jest ok bo traktowany jako pusty tekst... (?) |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Przeciez o to zapytanie
$rezultat = $polaczenie->query("SELECT id_users FROM users WHERE login = '$login'"); odpalasz zawsze niezaleznie czy $flaga jesdt true czy nie :/ To zapytanie masz odpalac tylko gdy $flaga jest TRUE. Od samego poczatku o tym ci mowie. A konkretnie gdy to preg_match("@^[a-zA-Z0-9_\-]+$@",$login) daje true bo $flaga w miedzyczasie utawiasz tez przy innej okazji. Poza tym zaiteresuj sie BINDowaniem jak juz pisalem to nie bedziesz mial tak glupich bledow zapytan i twoj skrypt bedzie bezpieczny -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 192 Pomógł: 0 Dołączył: 5.07.2015 Ostrzeżenie: (0%) ![]() ![]() |
ok, przerzuciłem sprawdzenie $flaga przed try i teraz dział bez błędów z '. Dzięki.
Dla pewności zapytam czyli preg_match jest bezpieczne w takiej formie czy ZAWSZE dodatkow w zapytaniach używać BINdowania ? Oczywiście zapomniałem już o tych funkcjach z 3 postu trim html.. itp |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Tak, ZAWSZE masz uzywac bindowania. Bo jak kiedys zmienisz regule w preg_match - bo np. klient sobie zazyczy login z apostrofem, to na 100% zapomnisz ze masz niezabezpieczone zapytanie i beda bledy. Tak wiec lepiej wyrob sobie nawyk BINDowania.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 06:30 |