J'ai une application Web de base qui utilise un DB distinct mais identique pour chaque «locataire» du système. Il y a un DB principal qui contient une table reliant chaque utilisateur à leur copie de la DB.Où et comment devrais-je stocker les mots de passe DB de base?
À l'heure actuelle, tous les détails de la connexion BD de client sont stockés en clair dans la table principale. Je sais que ce n'est pas bon et n'est qu'une mesure temporaire afin que je puisse continuer à écrire des fonctionnalités.
Je ne peux penser à deux façons de sécuriser les détails de connexion (voir ci-dessous), qui semblent toutes deux imparfaites, alors j'espérais des conseils, si cela ne vous dérange pas, s'il vous plaît?
utiliser une certaine forme de méthode de sel et de hachage pour stocker les mots de passe, la clé stockée dans un fichier local sur l'application a accès.
Utilisez un service tiers (tel que Amazon KMS) pour chiffrer l'intégralité de la base de données maître.
La deuxième option que je suppose est la plus sûre, mais je suis dépendante sur un plugin DB Je ne comprends pas bien et un service 3ème partie qui réduira les performances. Mon problème avec ces deux choses, c'est que si quelqu'un était capable d'injecter une requête SELECT dans mon code et accéder à la table maître (FYI, toutes les variables de requête sont liées comme paramètres), il décryptera toujours les mots de passe indépendamment de quelle méthode j'utilise. Est-ce toujours le cas et quelque chose que nous acceptons, ou y a-t-il une autre couche de sécurité pour empêcher les éventuels attaquants?
Merci!
Merci pour votre conseils! Comme vous le dites, le hachage de mot de passe semble être une nécessité absolue. J'ai déjà réussi à me débarrasser de l'idée d'un cryptage DB complet, car la diminution des performances à elle seule pourrait causer des problèmes dans ce cas d'utilisation particulier. J'avais déjà utilisé un compte restreint sur le serveur DB, qui ne fournit que des privilèges SELECT, UPDATE et INSERT, mais j'aime votre idée de les séparer entre deux comptes et pourrait l'implémenter plus tard aujourd'hui. Merci! – Andy
En outre, malheureusement, 2FA est exagéré dans ce cas et c'est en fait une application axée sur les mobiles, de sorte que l'adresse IP de l'utilisateur change fréquemment. C'est certainement une bonne idée, donc étant donné que c'est seulement une petite quantité de travail, je pourrais avoir un coup de pouce à cela pour les utilisateurs de bureau pour ajouter un obstacle supplémentaire pour que quelqu'un puisse surmonter. L'API mobile est très limitée, donc cela pourrait être la protection supplémentaire dont j'ai besoin! Merci encore! – Andy