Laravel est un cadre PHP populaire qui a non seulement une syntaxe élégante, mais fournit également des outils riches et des API pratiques pour créer des applications Web de haute qualité. Dans le développement réel du projet, la sécurité des données et la standardisation de la structure des bases de données sont particulièrement importantes. Cet article expliquera comment effectuer des opérations de chiffrement de base de données dans Laravel et configurer les préfixes de table de base de données pour améliorer la sécurité et la maintenabilité du système.
Dans le développement réel, la base de données stocke généralement des informations sensibles des utilisateurs, telles que le numéro de compte, le mot de passe, l'adresse e-mail, etc. Par conséquent, le traitement du cryptage est particulièrement nécessaire. Laravel peut utiliser l'extension OpenSSL de PHP pour implémenter les opérations de chiffrement et de décryptage des données. Il est recommandé de l'utiliser avec des variables d'environnement pour assurer la sécurité de la clé.
$ key = env ('app_key'); $ iv = env ('app_iv'); $ mot de passe = openssl_encrypt ('your_db_password', 'aes-256-cbc', $ key, 0, $ iv);
Grâce au code ci-dessus, le mot de passe de la base de données peut être chiffré. La clé (APP_KEY) et le vecteur d'initialisation (APP_IV) requis pour le chiffrement doivent être configurés dans le fichier .env du projet Laravel.
$ key = env ('app_key'); $ iv = env ('app_iv'); $ mot de passe = openssl_decrypt ($ crypted_password, 'aes-256-cbc', $ key, 0, $ iv);
Le processus de décryptage est symétrique à la méthode de chiffrement, et vous n'avez qu'à vous assurer que le mot de passe d'origine est restauré avec succès en utilisant la même clé et le même vecteur.
PHP Artisan Key: Générer - PHP Artisan Key: Generate --show | grep "^ app_iv" >> .env
La première commande est utilisée pour générer la clé d'application, et la deuxième commande peut dire directement le vecteur d'initialisation dans le fichier de configuration de l'environnement pour éviter l'ajout manuel d'erreurs possibles.
Afin de mieux gérer la base de données et d'éviter les conflits de nom de table, Laravel offre la fonction de définir les préfixes de table de base de données. Particulièrement adapté aux systèmes multi-modules ou multi-langues.
Db_prefix = votre_prefix
Après avoir réglé le préfixe, Laravel ajoutera automatiquement un préfixe spécifié aux opérations de base de données ultérieures pour une gestion unifiée facile.
Schéma :: Create ('your_table_name', fonction (tableau Blueprint $) { $ table-> incréments ('id'); $ table-> string ('name'); $ Table-> String ('Email') -> UNIQUE (); $ table-> booléen ('actif') -> Default (false); $ Table-> TimeStamps (); $ table-> unsignedInteger ('user_id'); $ Table-> Foreign ('user_id') -> références ('id') -> on ('utilisateurs'); });
Sans ajouter manuellement les préfixes pendant la migration, Laravel reconnaîtra et s'appliquera automatiquement.
$ utilisateurs = db :: table ('your_table_name') -> get ();
Lorsque vous interrogez à l'aide de la méthode DB :: Table , le framework ajoute automatiquement un préfixe défini au nom de la table, tel que votre_prefix_your_table_name , sans opérations supplémentaires.
Grâce à la configuration ci-dessus, Laravel peut non seulement chiffrer les informations de base de données sensibles, mais également implémenter facilement les paramètres de préfixe de table de base de données. La combinaison de l'utilisation des variables environnementales et des outils de migration améliore non seulement la sécurité du projet, mais améliore également la flexibilité de la gestion des bases de données.