Ogólnie może być, ale diabeł tkwi w szczegółach.
Jedynie unikał bym trzymania danych w sesji. Lepiej zapisać id sesji w pliku cookie oraz w bazie danych.
Co do szczegółów:
Trzeba pamiętać o walidacji danych w formularzu.
Protokół SSL mile widziany
Wysyłać tylko metodą POST
Hasła w bazie danych powinny być hashowane
Dodatkowo najlepiej przechowywać w bazie hasło i login w formie zaszyfrowanej
Identyfikator sesji powinien mieć datę ważności
Ochrona przed CSFR
Bezpieczna możliwość przywracania hasła
Pliki cookie z flagami httponly i najlepiej z secure
Zabezpieczenie formularza przed atakiem słownikowym, najlepiej ograniczyć liczbę prób w danym przedziale czasowym
Jak bezpieczeństwo jest ważne warto też zastosować logowanie za pomocą kodu sms. Watro też pamiętać o rejestracji kont:
Minimalna długość hasła, im dłuższe tym lepiej
Sprawdzanie czy dany login i hasło są zajęte
Aktywacja konta za pomocą email
Hasło nigdy nie powinno być emailem
Przy tworzeniu użytkownika nadać unikalny id dla tego użytkownika, powinien to być ciąg losowy a nie kolejne liczby typu: id 1, id 2 itp.