tjaden
22.09.2009, 18:36:42
Chciałem się dowiedzieć czy symfony zabezpiecza przed atakami SQL injection na poziomie walidacji formularza na podstawie danych zawartych w modelu?
BigB
22.09.2009, 19:43:25
Jeśli w ustawieniach aplikacji ustawiłeś escaping-strategy na on, to zabezpiecza. Walidacja formularzy polega na sprawdzeniu, czy użytkownik wprowadził odpowiednią wartość do odpowiedniego pola (czyli np. swoje imię w pole tekstowe, wybrał kategorię, podane hasła są takie same itd). Jeśli chodzi Ci o własnoręczne zabezpieczanie, to możesz walidować pola formularza przy użyciu wyrażeń regularnych.
A co do danych zawartych w modelu: nie rozumiem do końca o co Ci chodzi, ale formularze generowane przez np. Propela wg schemy bazy danych mają wygenerowane odpowiednie walidatory dla odpowiednich pól.
destroyerr
23.09.2009, 07:41:21
Może od początku. Jak SQL Injection to znaczy, że baza danych. Jeśli baza danych to nie symfony bo sf nie obsługuje bazy, tylko wykorzystuje do tego celu ORMy. Oba ORMy korzystają z PDO, więc już chyba wiesz jak jest z tą ochrona przed SQL Injection.
Co do walidacji i wykrycia próby wstrzyknięcia, to musiałbyś napisać swój walidator, który by to wykrywał, bo symfony takie czegoś nie ma. Na marginesie dodam, że chyba żaden framework w PHP takiej walidacji nie umożliwia.
@BigB escaping-strategy tyczy się tylko tego co trafia do widoku.
BigB
23.09.2009, 08:52:08
Wg książki "Symfony - aplikacje internetowe w praktyce" Karola Przystalskiego propelowe Criteria oczyszczają zapytania ze złośliwego kodu (czyli zabezpieczenie jest na poziomie ORM)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.