Ostatnio przeczytałem, że firma Kroll Ontrack oferuje promocję o nazwie Odzyskaj cyfrowe wspomnienia. W przypadku uszkodzeń logicznych koszt odzyskania danych to tylko 190 PLN. Jednak nawet te 190 PLN można zaoszczędzić i odzyskać dane “we własnym zakresie”.
Pojawił się ciekawy post: Input Validation Is Not The Answer. Jego głównym przesłaniem jest zdanie If you're trying to solve a SQL injection problem, input validation is NOT the answer!. I to jest prawda, walidacja danych wejściowych jest bardzo istotnym elementem obrony w aplikacjach (nie tylko tych) webowych, ale nie może być jedyną linią obrony. Innymi słowy – dynamiczne sklejanie SQL jest ZŁE!
Często informacji (i usługom/aplikacjom) przypisuje się trzy atrybuty: poufność, integralność oraz dostępność (triada CIA). Atak denial-of-service to oczywiście atak na dostępność danych/usług. Mam wrażenie, że ostatnimi czasy atak DoS w powszechnej świadomości utożsamia się z atakiem DDoS i botnetami, a szkoda, bo czasami atak tego typu jest dużo łatwiejszy.
Tak sobie przeglądam dzisiaj feedy RSS i na co trafiam? Injection in Order by, Group by Clause. Przypominam, że już o tym scenariuszu (w ORDER BY) pisałem.
Nazwiska klientów kilku banków i salda ich kont mogą wpaść w niepowołane ręce, jeśli mimo wylogowania cofną się oni na stronę bankowości elektronicznej.
Klienci BZ WBK korzystający z serwisu banku za pośrednictwem przeglądarek Opera 9 i Firefox 2 mogą być narażeni na ujawnienie informacji objętych tajemnicą bankową.
Miałem ostatnio okazję popatrzeć w kod jednej aplikacji, napisanej w PHP. Schemat działania był taki, że był główny “kontroler”, który w parametrach przyjmował informacje o module. Kontroler wykonywał include modułu. I niby wszystko działało, gdyby nie kilka drobnych szczegółów. W dodatku te szczegóły powtarzają się w wielu różnych kawałach kodu, różnych autorów, więc warto o nich wspomnieć.
Kilka razy spotkałem się z SQL Injection w mechanizmach sortowania danych. Konstrukcja aplikacji często wygląda w taki sposób, że w parametrach przekazywana jest nazwa kolumny do sortowania, oraz kierunek sortowania (ASC/DESC). Parametry te następnie wstawiane są (poprzez sklejanie) do zapytania SQL, co jest oczywiście ZŁE! Do tego kilka razy słyszałem stwierdzenie, że w ORDER BY nie da się zrobić sql injection. Cóż, obawiam się, że jednak się da i wcale nie jest to specjalnie skomplikowane. Poniżej przykład w MySQL.