Odpowiedź Javiera, która zawiera link owasp, to dobry początek.
Jest jeszcze kilka rzeczy, które możesz zrobić więcej:
-
Jeśli chodzi o ataki typu SQL injection, możesz napisać funkcję, która usunie typowe instrukcje SQL z danych wejściowych, takie jak „DROP” lub „DELETE * WHERE”, w ten sposób:
*$sqlarray =tablica( " UPUŚĆ ","lub 1=1","Wybierz sumę","WYBIERZ * Z","wybierz hosta","utwórz tabelę","OD użytkowników","użytkownicy GDZIE");*
Następnie napisz funkcję, która sprawdzi dane wejściowe z tą tablicą. Upewnij się, że żadne elementy wewnątrz $sqlarray nie będą typowymi danymi wejściowymi użytkowników. (Nie zapomnij użyć w tym przypadku strtolower, dzięki Lou).
-
Nie jestem pewien, czy memcache działa z PHP 4, ale możesz wprowadzić pewną ochronę przed spamem za pomocą memcache, zezwalając tylko na określony zdalny dostęp IP do strony process.php X razy w okresie Y.
-
Przywileje są ważne. Jeśli potrzebujesz tylko uprawnień do wstawiania (powiedzmy, przetwarzania zamówienia), powinieneś zalogować się do bazy danych na stronie procesu zamówienia z użytkownikiem, który ma tylko uprawnienia do wstawiania i być może wybierania. Oznacza to, że nawet jeśli wstrzyknięto SQL, mogliby wykonywać tylko zapytania INSERT / SELECT, a nie usuwać ani restrukturyzować.
-
Umieść ważne pliki przetwarzania php w katalogu, takim jak /include. Następnie zabroń wszystkim adresom IP dostępu do tego katalogu /include.
-
Umieść solony MD5 z agentem użytkownika + zdalnym ipem + swoim statusem w sesji użytkownika i spraw, aby sprawdzał przy każdym wczytaniu strony, czy prawidłowy MD5 znajduje się w jego pliku cookie.
-
Nie zezwalaj na niektóre nagłówki (http://www.owasp.org/index.php/Testing_for_HTTP_Methods_and_XST ) . Nie zezwalaj na PUT (jeśli nie potrzebujesz przesyłania plików)/TRACE/CONNECT/DELETE nagłówki.