Je dois stocker une clé de chiffrement qui sera accessible via l'application globalement. Y a-t-il un lieu de stockage pour les paramètres et les configs? J'ai essayé de chercher mais je n'ai rien trouvé.Où stocker une clé de chiffrement à utiliser dans toute l'application (Ruby On Rails)
Répondre
Il y a plusieurs façons de faire quelque chose comme ça.
La façon la plus simple de faire quelque chose comme ça dans le monde à la disposition de votre application est de définir une constante au sein config/environment.rb
(ou config/environments/production.rb
.
Cependant, avec des données sensibles, il est important qu'ils découplés de votre primaire SCM et seulement disponible au sein de l'environnement de production - au moins de cette façon, si votre code est compromis, votre clé de chiffrement est sûre
Il y a deux façons de le faire que je connais - l'une serait de mettre les clés dans un environnement variable, qui peut ensuite être consulté dans Ruby par ENV['variable_name]
Une autre option est de le stocker dans un fichier externe qui est découplé de votre référentiel de code, puis de le lire avec un initialiseur.
Quelle que soit la façon dont vous le faites, vous pouvez combiner cette approche avec une déclaration constante config/environment.rb
:
# config/environment.rb
ENCRYPTION_KEY = ENV['encryption_key']
De cette façon, si vous changez l'emplacement de stockage de votre clé, il vous suffit de changer une ligne de code.
Vous pouvez définir toutes vos constantes secrètes dans un fichier config/initializers/01_secrets.rb. Voici quelques choses à penser:
Le préfixe 01 est pour vous assurer que les constantes secrètes sont définies avant les autres initializers qui font usage de ces constantes sont chargées. Le fichier 01_secrets.rb ne doit pas être enregistré dans votre SCM.
Le (s) serveur (s) qui stockent ce fichier doivent être correctement sécurisés et le fichier lui-même doit avoir une sécurité maximale.
E.g.
# config/initilizers/01_secret.rb
ENV['ENCRYPTION_KEY'] = "your_key"
- 1. Où devrait-on stocker la clé de chiffrement lors de l'utilisation du chiffrement AES avec PHP?
- 2. Où et comment stocker la clé de chiffrement dans CodeIgniter
- 3. Quel algorithme de chiffrement utiliser et où stocker les clés?
- 4. Ruby on Rails: où renvoyer
- 5. Où puis-je utiliser des cookies dans Ruby on Rails
- 6. Comment utiliser Procs dans Ruby on Rails?
- 7. Comment stocker la clé de chiffrement .NET
- 8. Ruby on Rails Trouver Où Aucun enregistrement
- 9. Utiliser ActiveRecord dans Ruby On Rails 3
- 10. Ruby on Rails renommée clé étrangère
- 11. Ruby on Rails noms incorrects clé primaire
- 12. Comment utiliser https dans Ruby on Rails
- 13. Ruby on Rails - Clé primaire et étrangère
- 14. Comment utiliser && in dans Ruby on Rails?
- 15. Où mettre un morceau de code dans Ruby on Rails?
- 16. Où stocker la classe dans ruby sur les rails
- 17. ruby on rails stocker sql résultat sur une variable
- 18. Utiliser qTip2 avec Ruby on Rails
- 19. Ruby on Rails + EventMachine?
- 20. Ruby on Rails avec Redis, backend de valeur-clé I18n
- 21. Ruby on Rails: Comment utiliser select?
- 22. Comment utiliser Prototip avec Ruby on Rails?
- 23. Ruby On Rails ID personnalisé
- 24. Ruby on Rails - Variable dans une variable
- 25. décryptage DES3 en Ruby on Rails
- 26. Comment stocker des photos et vidéos privées Ruby on Rails
- 27. Comment utiliser HSQLDB avec Ruby on Rails.
- 28. Relations dans Ruby on Rails
- 29. ruby on Rails dto objects - Où les stockez-vous?
- 30. Dans Ruby on Rails, devrions-nous utiliser content_for? (: Foobar)?