![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 264 Pomógł: 11 Dołączył: 9.05.2011 Skąd: Gdańsk Ostrzeżenie: (10%)
|
Witam mam taki kod
i chciałbym się zapytać czy to dobre filtrowanie? czy coś jest nie tak, czy czegoś mu brakuje, czy tez może żle to robie? Ogólnie działa. Po długiej przerwie w programowaniu staram się uczyć dalej. Z góry dzięki. |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%)
|
chciałbym się zapytać czy to dobre filtrowanie? Na pierwszy rzut oka i generalnie to nie - za dużo tam wszystkiego i nie za bardzo wiadomo jakiemu celowi ma to konkretne filtrowanie służyć. Filtrowanie/eskejpowanie/czyszczenie musi mieć konkretny cel. Jednym algorytmem nie da się targetować wszystkich celów. Np. filtrowanie pod kątem wyświetlania tekstu w htmlu będzie inne niż filtrowanie pod kątem przesyłania danych do bazy. Ja zgaduję, że ty chcesz zabezpieczyć dane z formularzy które lecą do bazy. W takim przypadku samo mysqli_real_escape_string wystarczy. (później dojdziesz do jeszcze lepszej parametryzacji) No i może trim. Chodzi o to, że to co user napisze Ci w textarea nijak nie skrzywdzi bazy danych. Baza ma immunitet na hakowanie javascriptem i innymi sztuczkami. Bazę można uszkodzić jedynie błędnie skonstruowanymi zapytaniami, którym mysqli_real_escape_string (a docelowo parametryzacja) i pozamykane apostrofy/cudzysłowy całkowicie zapobiegają. Tu zresztą są różne opcje - albo oczyszczać przed wprowadzeniem albo przy wyprowadzaniu/pobieraniu. Filtr htmlspecialchars wykorzystasz podczas pobierania danych z bazy w celu wyświetlenia ich HTMLem. Co do addslashes to ja nie wiem do czego to komu potrzebne (ale chętnie bym się dowiedział). Kiedyś, jak były kombinacje z magic_quotes i ext_mysql to się z tego korzystało, ale teraz...? Inna uwaga odnośnie budowy Twojej klasy. Tam inkludujesz plik i połączenie z bazą - unikaj czegoś takiego już na początku. Myśl o tym, żeby klasa i funkcja była samodzielna, a wszelkie zależności pobierała z zewnątrz, za pomocą przeznaczonego do tego mechanizmu czyli konstruktora. Inkludowanie plików w klasie jest niemoralne, złe i wyklęte. Po trzykroć hańba (IMG:style_emoticons/default/wink.gif) Nie wiem czy nie za krytycznie Cię oceniłem. Jeśli tak to wygląda to nie powinno bo nie miałem takiego zamiaru. Ogólnie mi się podoba Twój kierunek - eksperymentowanie to podstawa. Im więcej się popsuje tym więcej się nauczy (IMG:style_emoticons/default/wink.gif) |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 264 Pomógł: 11 Dołączył: 9.05.2011 Skąd: Gdańsk Ostrzeżenie: (10%)
|
Bardzo dobrze opisałeś.
Na pewno wyciągne wnioski i pokombinuje dalej. Przejde na funkcje prepare i bindValue Dzięki : ) Ten post edytował plej 1.06.2017, 20:46:52 |
|
|
|
![]() ![]() |
|
Aktualny czas: 19.12.2025 - 12:48 |