![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 31.07.2012 Ostrzeżenie: (0%) ![]() ![]() |
Zabrałem się za prace Inżynierską (specjalistyczny CMS)
Zacznę od tego ze moja znajomość PHP pozwala żeby go napisać Pytanie brzmi czy moje rozwiązanie jest tym najlepszym Parę pytań na początek: (chodzi o wprowadzanie danych w Panelu Admina) Walidacja formularzy Czy sprawdzać każdą zmienną przez preg_match? a może warto robić to w Java Script? lub wystarczy za pomocą PDO chronić się przed sql injection, a co wprowadzi użytkownik w danym polu jest nie ważne? a może inna metoda? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Czy sprawdzać każdą zmienną przez preg_match? NIE. A po co? Do tego podchodzi się inaczej. Pamiętaj, że najlepsza możliwa walidacja jest wówczas gdy dokładnie wiemy czego się mamy spodziewać. Jeżeli przykładowo ma to być liczba - to preg_match jest zbędny. Staraj się "przewidywać" i planować to co użytkownik może wprowadzić - w przypadku takich rzeczy jak na przykład imię, które nie jest może tak istotne można sobie walidacje nieco uprościć ale i tak musisz zabezpieczać się przed XSS czyli eliminować wpisy zawierające podejrzane znaki - nikt przecież nie ma w imieniu znaku > ani < itd.. Tutaj przyda się preg_match. Cytat a może warto robić to w Java Script? Walidacja musi być po stronie serwera przed podaniem jej do bazy (zakładając, że używasz PDO w taki sposób by eliminować SQL-inj.). Dodanie walidacji po stronie klienta czyli javascript zależy od chęci i czasu nad projektem - należy też pamiętać, że walidacja JS musi być taka sama jak walidacja PHP i zmiana w jednej musi ciągnąć za sobą zmianę w drugiej. Jest to ogólnie zabieg pomagający użytkownikowi. Jeżeli nie chcesz robić pełnej walidacji JS to zrób przynajmniej sprawdzanie czy są wypełnione wymagane pola przed wysłaniem tego do PHP. Cytat lub wystarczy za pomocą PDO chronić się przed sql injection, a co wprowadzi użytkownik w danym polu jest nie ważne? To podejście jest strasznie nie zdrowe - bardzo szybko okazuje się, że ludzie wpisują rozmaite głupoty a silnik MySQL przykładowo pozwala na wprowadzanie dziwnych danych innego typu pod dany typ bez wyrzucania błędów zatem zapisują się jeszcze większe idiotyzmy nie wspominając o XSS itp... Nie myśl sobie że jeśli robisz panel administracyjny dla "zaufanych" użytkowników, którzy raczej nie będą chcieli sobie samemu zrobić krzywdę, to możesz odpuścić bezpieczeństwo (nikt przecież nie będzie próbował zrobić sql-injection w panelu admina...). Jeśli ktoś niechcący dostanie się do takiego panelu to ma otwartą drogę - PA powinien zatem być porządnie zabezpieczony. Co do innych metod poszukaj info o filter_var czy validate filters Walidację można wykonywać na wieeeele sposobów:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 09:13 |