Archwium kategorii ‘Bezpieczeństwo’
Blind SQL Injection
Blind SQL Injection jest odmianą ataku SQL Injection charakteryzującą się brakiem pokazywania błędów w zapytaniach SQL. Wyłączenie pokazywania błędów przez programistę / administratora “podnosi” bezpieczeństwo aplikacji, jednak nie eliminuje problemu. Modyfikacja zapytania jest nadal możliwa, staje się jedynie trudniejsza z braku wglądu w zapytania oraz błędy SQL.
Autologowanie
Wraz z wdrożeniem systemu logowania następuje pytanie czy dać użytkownikom możliwość zautomatyzowania tego procesu, dzięki czemu za każdym razem nie będą musieli podawać swojego loginu i hasła. Głównym przeciwwskazaniem takiej funkcjonalności jest wrażliwość danych jakie są dostępne po zalogowaniu.
Bezpieczne logowanie
Pierwszą czynnością podczas logowania (zaraz po filtracji danych) jest sprawdzenie czy podany użytkownik istnieje w naszym systemie. Z zasady odbywa się to za pośrednictwem zapytania SELECT, które wyszukuje użytkownika na podstawie podanych przez niego danych.
Podstawowe zasady bezpieczeństwa.
Poniżej kilka podstawowych zasad, które wszyscy znają, ale często się o nich zapomina :-)
Traktuj użytkownika jako wroga.
Nie ufaj danym przesyłanym do aplikacji, wszelkie przychodzące dane należy traktować jako niebezpieczne.
Sprawdzaj dane przychodzące.
Sprawdzaj czy przesyłane dane są odpowiedniego typu, czy maja odpowiednia długość i czy pasują do wzorca.
Nie korzystaj z tablic superglobalnych.
Wszelkie globalne zmienne przepisuj do zmiennych [...]
ClickJacking
W połowie poprzedniego miesiąca Robert “RSnake” Hansen informował na swoim blogu o nowym zagrożeniu. Wraz z Jeremiahem Grossmanem mieli zaprezentować owe niebezpieczeństwo na konferencji OWASP. Niestety do prezentacji nie doszło. Chłopaki uznali ze (tudzież ulegli naciskom) lepiej poczekać z opisem ClickJackingu (inna nazwa UI redress attack) do momentu załatania podatnych app.
Kontrola długości danych
Czy podczas pobierania danych od użytkowników, które następnie przesyłane są do bazy kontrolujecie ich długość? Generalnie jeśli nie operujemy na wrażliwych danych operacje tą można pominąć. Podczas zapisu zbyt dużej porcji danych SZBD usunie jej nadmiar i ukończy operacje z powodzeniem nie generując żadnego błędu. Jednak czy na pewno kwestia kontroli długości danych jest [...]
Google upublicznia RatProxy
Tym razem krótko :)
Michal Zalewski kilka dni temu poinformował na blogu Google’a o upublicznieniu firmowego narzędzia do pasywnego testowania zabezpieczeń aplikacji internetowych, którego przy okazji jest autorem. Więcej info na Google Online Security Blog.
Mail injection
Mimo swojego wieku e-mail pozostaje w czołówce sposobów komunikacji w Internecie. Niemal na każdej stronie firmowej czy domowej można znaleźć adres e-mail umożliwiający skontaktowanie się z jej właścicielem. Na wielu z nich komunikacja jest ułatwiona poprzez wstawienie formularza, którego wypełnienie automatycznie wysyła maila. Działanie takie poza ułatwieniem życia użytkownikom może ułatwić życie także spamerom, ale [...]
Filtr XSS w IE8
Na oficjalnym blogu IE pojawił się wpis informujący o jednej z nowości dodanych do Internet Explorer 8 beta 2 mającej w znacznym stopniu zwiększyć bezpieczeństwo korzystania z Internetu. Mowa o filtrze XSS, który powstał we współpracy z teamem Security Vulnerability Research & Defense.
Obsługa HTML
Jakiś czas temu w notce Niebezpieczeństwo HTML’a nakreśliłem problem wstrzyknięć kodu HTML. W komentarzach kilkukrotnie pojawiło się pytanie o sposób obrony przed tego typu zagrożeniem.
Najprostszą obroną jest usuwanie wszelkich tagów HTML z przesłanych danych. Możemy tego dokonać korzystając z funkcji strip_tags oraz htmlspecialchars. W przypadku drugiej funkcji warto zainteresować się jej opcjonalnymi parametrami tzn. sposobem [...]