Tak, musisz się przed tym chronić.
Pozwól, że pokażę ci, dlaczego, korzystając z konsoli programisty Firefoksa:
Jeśli nie wyczyścisz tych danych, Twoja baza danych zostanie zniszczona. (Może to nie jest całkowicie poprawne wyrażenie SQL, ale mam nadzieję, że zrozumiałem.)
Tylko dlatego, że masz ograniczone opcje dostępne w menu rozwijanym nie oznacza ograniczyłeś dane, które mogę wysłać do twojego serwera.
Jeśli próbowałeś ograniczyć to dalsze korzystanie z zachowania na swojej stronie, moje opcje obejmują wyłączenie tego zachowania lub po prostu napisanie niestandardowego żądania HTTP do twojego serwera, które i tak imituje ten formularz. Istnieje narzędzie o nazwie curl dokładnie do tego celu i myślę polecenie, aby mimo wszystko przesłać ten wstrzyknięcie SQL, wyglądałoby mniej więcej tak:
curl --data "size=%27%29%3B%20DROP%20TABLE%20*%3B%20--" http://www.example.com/profile/save
(Może nie jest to całkowicie poprawne polecenie curl, ale znowu mam nadzieję, że zrozumiałem.)
Powtórzę więc:
NIGDY nie ufaj danym wprowadzanym przez użytkownika. ZAWSZE chroń się.
Nie zakładaj, że jakiekolwiek dane wprowadzane przez użytkownika są bezpieczne. Jest potencjalnie niebezpieczny, nawet jeśli dotrze w inny sposób niż za pomocą formularza. Żadna z nich nigdy nie jest na tyle godna zaufania, aby zrezygnować z ochrony przed wstrzyknięciem SQL.