Qu'est-ce que la secret_key_base dans rails 4 ?

Créé le 13 Dec 2022 - Mis à jour le 04 Jul 2023 - Créé par Fabien Berthoux - ruby-on-railsruby

La secret_key_base est une valeur clé qui est générée lors de l'installation de Rails. Cette valeur est utilisée avec les cookies ou le token d'authentification fourni par Rails et est utilisée pour authentifier les sessions et fournir une sécurité supplémentaire sur les données transmises. Il est basé sur un hachage cryptographique qui est difficile à rompre et fournit une protection supplémentaire contre le vol d'informations confidentielles.

Le mot de passe de la clé est utilisé par Rails pour chiffrer les données stockées dans les cookies et les tokens d'authentification. Cela permet à Rails de vérifier que les données proviennent bien d'un utilisateur authentifié et non d'un pirate. La clé secret_key_base est générée lors de l'installation de l'application Rails et peut être modifiée manuellement si nécessaire.

Cette clé est également utilisée pour crypter les données stockées dans le système de base de données de l'application. Cela garantit que les données ne sont pas accessibles aux utilisateurs non autorisés et que les données sont sécurisées.

# Exemple de génération d'une secret_key_base

# Génére un token de 64 caractères
token = SecureRandom.hex(64)

# Encrypte le token et le stocke dans le fichier de configuration de l'application
Rails.application.secrets.secret_key_base = token

Quelle est la taille de la secret_key_base ?


La taille de la secret_key_base est généralement de 64 caractères, mais elle peut être modifiée manuellement si nécessaire.

# Exemple de changement de taille de la secret_key_base

# Génére un token de 128 caractères
token = SecureRandom.hex(128)

# Encrypte le token et le stocke dans le fichier de configuration de l'application
Rails.application.secrets.secret_key_base = token

Quel est le rôle de la secret_key_base ?


La secret_key_base est utilisée pour authentifier les sessions et fournir une sécurité supplémentaire sur les données transmises. Il est basé sur un hachage cryptographique qui est difficile à rompre et fournit une protection supplémentaire contre le vol d'informations confidentielles.

# Exemple d'utilisation de la secret_key_base

# Défini une secret_key_base
secret_key_base = Rails.application.secrets.secret_key_base

# Utilise la secret_key_base pour crypter des données
encrypted_data = Crypto.encrypt(data, secret_key_base)

Quelle est la différence entre la secret_key_base et le secret_token ?


La secret_key_base et le secret_token sont tous deux des clés secrètes utilisées pour crypter les données dans l'application Rails. La principale différence est que la secret_key_base est générée lors de l'installation de l'application et peut être modifiée manuellement par l'utilisateur. Le secret_token est généré lors de la création de l'application Rails et ne peut pas être modifié.

# Exemple de génération de la secret_token

# Génére un token de 64 caractères
token = SecureRandom.hex(64)

# Encrypte le token et le stocke dans le fichier de configuration de l'application
Rails.application.secrets.secret_token = token

Comment puis-je changer la secret_key_base ?


Vous pouvez changer la secret_key_base manuellement en générant un nouveau token et en l'ajoutant à votre fichier de configuration de l'application.

# Exemple de changement de la secret_key_base

# Génére un token de 64 caractères
new_token = SecureRandom.hex(64)

# Encrypte le token et le stocke dans le fichier de configuration de l'application
Rails.application.secrets.secret_key_base = new_token

Quel est le format de la secret_key_base ?


La secret_key_base est un token de 64 caractères généré de manière aléatoire et crypté pour sécuriser les données. Il est généralement stocké dans un fichier de configuration sécurisé.

# Exemple de format de la secret_key_base

# Génére un token de 64 caractères
token = SecureRandom.hex(64)

# Affiche le token
puts token

# => 14f9bd8e8a7ac99e63f754efbe7f5117a4f7b4c4c4b2a9f8e8b7c5f5aefa7d5b