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...

Pour consulter la suite, découvrez le livre suivant :
couv_EP3CAK.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Routage
Suivant
Événements système