2009-08-25 24 views

Odpowiedz

5

This pytanie brzmi dobrze odpowiedział i obejmuje ataki wtrysku MySQL (jeden z bardziej powszechnych obaw. This pytanie jest również dobrze udokumentowane i obejmuje XSS (cross site scripting) ataki dobrze.

Wreszcie, zapoznaj się z PHP.INI i jak go skonfigurować, a co właściwie jest otwarte/zamknięte i włączone/wyłączone. Dobry host na przykład nigdy nie włączy globali rejestru, ale powinieneś przynajmniej wiedzieć, co to jest i dlaczego to sprawdzić: PHP Security ma zasoby na ten temat i wiele innych problemów związanych z ochroną PHP:

1

PHP może nie być najlepszym początkiem. Zwłaszcza, jeśli w dużej mierze kręcisz własny kod. Nie trzyma ręki z problemami bezpieczeństwa. (Fd: Życzę PHP odejdzie z różnych powodów).

jednak pewne ogólne zasady:

  • nie robić niczego, co pochodzi z zewnątrz zaufać. Zawsze zakładaj, że użytkownik jest jakimś palantem próbującym złamać twoją aplikację. Większość z nich nie będzie, oczywiście, ale ostatecznie będzie kimś, kto jest. Tylko dlatego, że dałeś przeglądarkę, to <select> zawierające a, b, i c nie oznacza, że ​​dostaniesz jedną z nich. JavaScript nie jest gwarancją niczego. Odnośniki mogą być łatwo sfałszowane. Dane POST można łatwo sfałszować. Pola tekstowe mogą zawierać dowolną postać, a nie tylko te, których oczekujesz.
  • Nie kopiuj i wklej kodu cudzego do produkcji, jeśli nie masz pewności, jak to działa. Nie masz pojęcia, ile uwagi autora poświęca bezpieczeństwu. Z mojego doświadczenia wynika, że ​​PHP copypasta w szczególności wydaje się mniej niezawodne, ale częściej ślepo wykorzystywane ponownie.
  • Nie ufaj sobie, że wykonasz ten sam rytuał w dziesiątkach różnych miejsc. Tak, mysql_real_escape_string() naprawi iniekcję SQL, ale musisz pamiętać, aby używać go wszędzie. Stwarza to wiele miejsc, w których możesz popełnić błąd i zapomnieć o uciekającym rytuale. Zamiast tego użyj przygotowanych instrukcji, a problem zniknie całkowicie. Inny przykład: Pylons (framework Python) obsługuje szablony, więc dowolna zmienna jest uciekła z kodu HTML, chyba że wyraźnie poprosisz o coś innego. XSS nie stanowi już problemu i nigdy nie muszę się martwić, że ręcznie wymykam się wszystkim, co wydrukuję.
1

Chris Shiflett jest iść do faceta na programowaniu PHP i bezpieczeństwo:

1

Jeśli masz trochę czasu, można spojrzeć na slajdach używanych przez Stefan Esser podczas jego conference at the Dutch PHP Conference kilka miesięcy temu, którego tytuł brzmiał „PHP Bezpieczeństwa kurs dla początkujących”.

Istnieje kilka PDF:

Te mogą być pomocne.

Następnie, nie wahaj się wyszukać trochę informacji nie związanych z PHP: niektóre problemy bezpieczeństwa (takie jak XSS, SQL Injection, CSRF, ...) nie są specyficzne dla PHP: tylko techniczne środki, aby uniknąć są one specyficzne; więc można znaleźć wiele informacji na stronach takich jak Wikipedia lub OWASP website

Powiązane problemy