SQLi w RoR

Co do zasady wykorzystanie pewnej dodatkowej “warstwy abstrakcji” ogranicza ryzyko związane z błędami typu SQL Injection. Ogranicza, ale nie eliminuje, bo:

I tak właśnie jest w przypadku Ruby on Rails: SQL Injection Vulnerability in Ruby on Rails (CVE-2012-5664) (patrz też: Rails 3.2.10, 3.1.9, and 3.0.18 have been released!).

A teraz pytania, które zadawałem programistom na szkoleniu, i na które odpowiedź brzmiała zwykle “nie”:

Pojęcie “biblioteki” jest tutaj pewnym placeholderem. Patrz też: Remember the Giblets! i The Trouble with Giblets.

Błąd w takim “dodatku” nie jest błędem w Twoim kodzie, ale jest błędem w Twojej aplikacji. Jeśli używasz cudzego kodu, musisz o niego dbać (On handling your pets and a CSRF protection that wasn't). Absolutne minimum to:

A co, kiedy ktoś mówi “nie mogę zagwarantować, że po aktualizacji nasz system będzie nadal działał”? Cóż, z tym też można sobie poradzić: Test-driven development.

Oryginał tego wpisu dostępny jest pod adresem SQLi w RoR

Autor: Paweł Goleń