![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 206 Pomógł: 6 Dołączył: 25.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Czy taka funkcja zabezpiecza dane które mają być zapisywane do bazy danych? Dodatkowo korzystam z PDO.
Takie jeszcze poboczne pytanie co dokładnie robi flaga FILTER_SANITIZE_STRING bo z tego co wyczytałem, to usuwa znaki html'owskie ale co jeszcze usuwa? Ten post edytował wpaski 7.10.2012, 13:25:06 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
A duże litery i znaki przestankowe? Cyfry też wykluczasz?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 206 Pomógł: 6 Dołączył: 25.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
tak w tym polu akurat tak miało być, w innych gdzie to wymagane to może zrobić takie coś?
czy poprostu dać addslashes? Ten post edytował wpaski 7.10.2012, 13:56:41 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Hmm, myślę, że nie ma co wymyślać koła na nowo, funkcje których potrzebujesz już są dostępne w PHP, tak jak mówiłeś addslashes, ale także strip_tags chociażby.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
@b4rt3kk: wpaski używa filter_var oraz jak mówił PDO więc zdradź co mają dwie propozycje mu dać?
Jak już to htmlentities oraz http://htmlpurifier.org/ |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Czy taka funkcja zabezpiecza dane które mają być zapisywane do bazy danych? Dodatkowo korzystam z PDO.
Zabezpiecza? W sensie przed SQL injection? Nie, nie zabezpiecza. Przed wprowadzeniem do bazy innych niż litery i spacja znaków? Tak. Tzn. sama w sobie nie, ale jeśli będzie odpowiednio użyta z funkcją wywołującą zapytanie to tak. Naprawdę masz konieczność takiego ograniczania znaków? Jeśli chodzi tylko o ochronę przed SQL injection to PDO::prepare w połączeniu z PDOStatement::bindParam jest absolutnie wystarczające, bo zostało stworzone w celu zabezpieczenia przed takim atakiem. Nie trzeba danych dodatkowo filtrować. Co masz dokładnie na myśli pisząc o zabezpieczaniu? Takie jeszcze poboczne pytanie co dokładnie robi flaga FILTER_SANITIZE_STRING bo z tego co wyczytałem, to usuwa znaki html'owskie ale co jeszcze usuwa? Tu masz opis wszystkich filtrów: http://www.php.net/manual/en/filter.filters.php. FILTER_SANITIZE_STRING cytuję: "Strip tags, optionally strip or encode special characters." czyli czyści tagi, opcjonalnie czyści lub koduje specjalne znaki. Żeby filtrował te opcjonalne znaki, trzeba dodać odpowiednią flagę (z kolumny "flags" na listingu). |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 206 Pomógł: 6 Dołączył: 25.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
dzięki, chodzi o podstawowe ataki, SQL injection i XSS
Cytat Tzn. sama w sobie nie, ale jeśli będzie odpowiednio użyta z funkcją wywołującą zapytanie to tak. Tego za bardzo nie rozumiem, przecież nie można wprowadzić innych znaków po za tymi filtrowanymi przez preg_match |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
dzięki, chodzi o podstawowe ataki, SQL injection i XSS No to sprawa jest prosta. Do skonstruowania zapytania wykorzystaj PDO::prepare, podepnij dane za pomocą PDOStatement::bindParam i wykonaj zapytanie za pomocą PDOStatement::execute. Nic nie trzeba filtrować ani eskejpować. Wszystkie dane są "podpięte" czyli lecą do servera SQL równolegle z zapytaniem a nie w zapytaniu. W tym cała magia PDO - dane nie mają bezpośredniego kontaktu z zapytaniem. W manualu PHP, za linkami które podałem, są ładne przykłady bindowania. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 10:14 |