Onestamente mi sembra che tu abbia preso in considerazione la maggior parte delle criticità, poi ovviamente dipende anche da come sono state implementate.

Per esempio:

per l'hash della password che algoritmo usi
filtri proprio tutti i dati in input
usi il type hinting

Poi essendo online io penserei anche ad un sistema di rate limiting sul server web, per evitare bruteforce (e script automatici rompiballe) sul login ed eventualmente anche su altre pagine sensibili se ci sono. Ma questo esula dal php vero e proprio.