Безопасность

Prepared statements, bcrypt, CSRF, rate limiting.
Используйте SQL->query($sql, $params) с placeholder ?. Пароли через password_hash(). POST/GET ID — обязательно через safeId().