Rails: stockage des données chiffrées dans la base de données
Je veux crypter base de données, car les données confidentielles sont stockées. J'utilise mongodb avec mongoid. Il est possible pour ce type de base de données? Et quelles sont les alternatives peuvent vous recommandons, si elle ne l'est pas?
P. S. le but Principal est: si quelqu'un pirater le serveur et de voler DB, il serait unencryptable.
Mise à JOUR: merci pour nickhje l'ai trouvé très nombreux soultions pour ActiveRecordmais rien pour Mongoid et d'autres Mongo clinets. Il serait bien de trouver quelques soultion pour Mongo et Mongoid!
source d'informationauteur petRUShka
Vous devez vous connecter pour publier un commentaire.
J'ai obtenu attr_encrypted de travail avec Mongo et Mongoid. Il prend seulement un peu de bricolage.
Assurez-vous que tous les encrypted_ champs qui sont créés automatiquement par attr_encrypted créés explicitement dans le modèle. Par exemple, si vous avez:
vous devez avoir:
Notez également que vous devez lui dire pour encoder la chaîne cryptée sinon Mongo va se plaindre bruyamment.
Enfin, si vous chiffrez un hachage, ce faire:
J'ai eu beaucoup de succès avec le attr_encrypted gem. Cependant, je ne l'ai utilisé avec ActiveRecord. Je ne sais pas si cela fonctionne avec MongoMapper ou Mongoid.
Indépendamment de la façon dont vous le mettre en oeuvre, je vous recommande fortement de seulement cryptage de certains champs. Ne pas chiffrer chaque champ de chaque table. Faire qui le rend difficile à utiliser associations, recherche en utilisant COMME, etc.
Essayer le mongoid-crypté-champs gem - elle est transparente comme il gère le cryptage à l'aide de mongoize/demongoize méthodes.
Il suffit de définir votre champ comme:
Puis vous pouvez y accéder comme d'habitude, mais les données sont stockées sous forme cryptée.
http://ezcrypto.rubyforge.org/
Utiliser postgreSQL avec la ezcrypto gem atm - fonctionne raisonnablement bien qu'il existe des limitations dans l'utilisation des associations entre les modèles et le cryptage des champs (ce peut-être au fond de mon incapacité à trouver le bon up-to-date de la fourche de ce projet).
Les champs chiffrés sont stockées dans la base de données postgreSQL comme le type de données BYTEA et généralement besoin de guillemets simples pour être échappé (un autre problème avec le plugin),
PostgreSQL n'ont également accès à son propre cryptage /décryptage de modeul 'pgcrypto", qui renvoie également à un type de données BYTEA. Vous ne savez pas comment cela pourrait s'intégrer avec des Rails activerecord et des associations entre les modèles (probablement mal :D).
J'utilise MongoDB dans une application avec la Mongoid ruby adaptateur. Ryan Bates (le demi-dieu de Rails) a récemment fait une remarquable railscast sur cette question http://railscasts.com/episodes/250-authentication-from-scratch.
Je suis en utilisant ce dans un MongoDB application et il fonctionne parfaitement pour le cryptage des données. Son tutoriel vidéo est surtout pour le cryptage des mots de passe, mais vous pouvez l'adapter à n'importe quel autre domaine de la valeur que vous voulez.
J'ai également utilisé attr_encrypted avec beaucoup de succès, mais je ne sais pas si cela fonctionnera avec MongoDB; il ne doit être utilisé avec ActiveRecord.