Jak zabezpieczyć aplikację dla platformy Facebook.pl?

Całkiem niedawno, tworząc aplikację dla platformy Facebook.pl spotkałem się z ciekawym zagadnieniem. Atak DOS na aplikację Facebook’a!
Nigdy wcześniej nie przyszło mi do głowy aby pomyśleć o tym aspekcie zabezpieczania aplikacji. Jak dotąd, wszystkie testy i zabezpieczenia zaimplementowane w kodzie aplikacji zostały ukierunkowane na odwołania z poza platformy, natomiast odwołania przychodzące z serwera Facebook, niejako domyślnie, zostały uznane za bezpieczne. Nic bardziej błędnego…

Przyznaję się, moja czujność została uśpiona i obudziła się dosyć drastycznie pewnego pięknego popołudnia gdy serwer hostujący aplikację zwiększał LOAD wykładniczo a główny aktor zamieszania nazywał się httpd. [ad#post]Szybka analiza i wszystko stało się jasne. Do serwera kierowano ok 100 zapytań na sekundę do losowych plików. Nasz hakiEr sprawdzał słownikowo nazwy plików i oczywiście znalazł dwa: index.php i iframe.php – dobra nauczka na przyszłość, używaj długich i losowych nazw plików – zyskasz czas na indentyfikacje problemu.
Kolejnych akcji naszego miłego hakiEr’a nie będe opisywał z wiadomych powodów – każdy kto napisał chociaż jedną aplikację używająć FBML / FQL wie jakie informacje są dostępne przez platformę a w szczególności jak je można wykorzystać.

Przyczyna była dosyć trywialna, aplikacja uruchomiona na Facebook.pl nie sprawdzała przychodzących zapytań pod kątem APP ID: $_REQUEST[‚fb_sig_app_id’]

Szybkie zabezpieczenie i problem z głowy:

if($_REQUEST['fb_sig_app_id'] != '123456789')
{
    die('Error');
}

źródło:

Powiązane wpisy:

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>