Sécurité
1. Introduction
CakePHP fournit plusieurs outils pour améliorer la sécurité des applications, notamment les deux composants SecurityComponent et CrossSiteRequestForgeryComponent qui ont déjà été détaillés (cf. chapitre Les contrôleurs - Les composants).
Mais CakePHP fournit également un ensemble de méthodes, notamment pour chiffrer, déchiffrer et hacher des données.
2. Chiffrer et déchiffrer des données
La classe Cake\Utility\Security fournit les méthodes encrypt() et decrypt() qui permettent de chiffrer et déchiffrer les données.
Le chiffrement est effectué en utilisant le protocole AES-256. La clé de cryptage utilisée doit comporter beaucoup de caractères différents (des majuscules, des minuscules, des chiffres, des caractères spéciaux).
Pour crypter des mots de passe, il faut utiliser la classe DefaultPasswordHasher du composant Auth plutôt que encrypt().
Syntaxe de la méthode encrypt() :
encrypt($text, $key, $hmacSalt = null)
Le premier argument est le texte à crypter, le deuxième argument est une clé utilisée pour le cryptage. Le troisième argument agit comme un « grain de sel » s’ajoutant à la chaîne à crypter ; par défaut la valeur Security.Salt définie dans le fichier config/app.php est utilisée.
Syntaxe de la méthode...