![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 27.06.2004 Ostrzeżenie: (0%) ![]() ![]() |
Szukam sposobu jak zabezpieczyć pole z imieniem i nazwiskiem przed email header injection.
Pole to sklejam w nagłówku maila: Reply-to: Imie i nazwisko <adres@email.pl> Adres email to osobne pole. Mi chodzi tylko o imie i nazwisko. Pomyślałem o preg_match i klasie znaków. W końcu może się zdarzyć obcojęzyczne imie i nazwisko. Mój pomysł: Działa ![]() Cytat In UTF-8 mode, characters with values greater than 128 do not match any of the POSIX character classes. Polskie znaki mają wyższy kod niż 128 a mimo wszystko działa. 1. Zastanawiam się czy to nie przypadek? 2. Jeśli to przypadek to jak Wy zabezpieczylibyście to pole? Ten post edytował bartu$ 2.12.2012, 12:31:01 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 74 Pomógł: 24 Dołączył: 21.10.2012 Skąd: Puławy Ostrzeżenie: (0%) ![]() ![]() |
Ja to robię tak:
Ten post edytował Sebek87 2.12.2012, 16:10:46 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 27.06.2004 Ostrzeżenie: (0%) ![]() ![]() |
Ja to robię tak: A jak w polu ktoś wpisze niemieckie umlauty? Sprawdź, że zadziała Ci to co ja wstawiłem czyli klasa [:alnum:]. Dziwi mnie to jednak bo dokumentacja mówi, że działać nie powinno. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 74 Pomógł: 24 Dołączył: 21.10.2012 Skąd: Puławy Ostrzeżenie: (0%) ![]() ![]() |
W Twoim przykładzie zadziała wszystko nawet znaki specjalne, ponieważ nie dałeś znaku początku ciągu.
Dodaj sobie do mojego przykładu Niemieckie przegłosy i po problemie. Np.: Ten post edytował Sebek87 2.12.2012, 16:10:31 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 27.06.2004 Ostrzeżenie: (0%) ![]() ![]() |
Łapie wszystko bo dałem spacje we wzoru powinienem zrobić zaprzeczenie żeby wyłapać czy są niepożadane znaki
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
A samo
Kod '/\w+\s/' nie wystarczy?
Ten post edytował !*! 2.12.2012, 16:12:32 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 27.06.2004 Ostrzeżenie: (0%) ![]() ![]() |
Bardziej chciałbym się dowiedzieć od kogoś kto lepiej zna temat - czy klasy znaków które można używać w funkcjach typu preg_* uwzględniają polskie znaki.
Bo mi wychodzi, że tak a dokumentacja mówi wprost przeciwnie i jasno. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@Sebek87: Unikod definiuje bodajże około 600 znaków, które są poprawnymi literami. Solidna aplikacja powinna je wszystkie przepuszczać. Dopisywanie każdej z osobna to idiotyzm.
@!*!: \w to odpowiednik a-zA-Z0-9_, więc nie wystarczy - brak obsługi liter niełacińskich. @bartu$: ^[\pL ]+$ - to wyrażenie, którego szukasz. EDIT: @bartu$: a-z nie łapie polskich znaków. Ten post edytował Crozin 2.12.2012, 16:20:10 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
czy klasy znaków które można używać w funkcjach typu preg_* uwzględniają polskie znaki Tak jeśli uwzględnisz to poprzez sekwencje lub modyfikatory. http://pl1.php.net/manual/en/reference.pcr...tern.syntax.php @Crozin - racja, pomyliłem to ze zmianą znaków. Ten post edytował !*! 2.12.2012, 16:23:37 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 27.06.2004 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wszystkim za odpowiedzi w tym temacie.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.05.2025 - 06:21 |