Além do que foi dito pelo, Omar, seria interessante também salvar no banco de dados todas as tentativas de login (usuário errado, senha errada, data/horário e o IP). Acredito que seria uma mão na roda, pois seria de grande ajuda para identificar o brute force.
Através disso, poderia estar bloqueado o formulário de acessos por tempo limitado após x tentativas pelo mesmo banco de dados (já que estaria guardando o IP e data/horário).
Também seria interessante alguma segurança a mais no login, algo como um token por e-mail, etc.
E para não precisar de um token em todo login, armazenar um IP seguro na conta do usuário.