Ogólna zasada jest jedna. Nie ufać użytkownikom. Poza tą regułą każde zalecenia będą dotyczyć specyficznego przypadku pisanej aplikacji.
Akurat atak DoS/DDoS jest atakiem bardziej na samą infrastrukturę sieciową niż na sam serwis internetowy i zabezpieczenia strony mają się nikle do możliwości obrony przed tego typu atakiem - tutaj już przychodzą z pomocą ludzie od sieci, a nie programiści PHP. Poza tym DoS jest zdecydowanie mało "skuteczne" - gdy ustanie atak ludzie mają znów dostęp do blokowanej witryny, żadnych szkód trwałych (z wyjątkiem ewentualnych finansowych). W odróżnieniu od np. SQL Injection, które w krytycznych przypadkach wymaga odtwarzania danych z kopii zapasowej.
A i samo 4p miało też błędy i konta użytkowników padły ofiarą ataków, zdarzyło się ;-)
Do klasycznych ataków na aplikacje webowe jako takie mamy dużo innych możliwości niż DoS: SQL Injection, XSS, CSRF, Mail injection, Directory traversal. Plus phishing w różnych odmianach aż do nawet użycia CSS na "dobrej" stronie w celu skierowania użytkowników na stronę wyłudzającą informacje.
http://www.beldzio.com/ i http://lukasz.pilorz.net/ polecam, sporo informacji o obronie.