Question

J'ai un site ASP.NET MVC avec une application d'administration du site privé sécurisé avec ASP.NET autorisation soutenu sql. Je dois ajouter une connexion pour le site public pour permettre aux visiteurs de signer pour un compte.

Je pense que je devrais créer un stockage totalement séparé pour le site public, plutôt que d'étendre le DB d'utilisateur existant et compter sur les rôles pour empêcher les utilisateurs publics hors du bureau arrière. Y at-il raison de ne pas le faire?

Était-ce utile?

La solution

Oui, il y a. Vous pouvez isoler la base de données privée de la base de données publique. Créer 2 comptes d'utilisateurs de bases de données, assurez-vous qu'ils ont seulement accès à la base de données 1 dont ils ont besoin. Les applications publiques et privées utiliseront différents comptes. Puis verrouiller vers le bas représente la base de données pour vous assurer qu'ils ne disposent que les droits nécessaires à l'application Web pour la fonction. (Je ne suis pas sûr de ce que la base de données que vous utilisez. Si vous utilisez MS-SQL Assurez-vous qu'ils n'ont pas accès à xp_cmdshell, si vous êtes sous mysql assurez-vous que le compte ne dispose pas des privilèges de fichiers. Il y a d'autres considérations mais cela est en dehors de la portée de cette question.)

Si une vulnérabilité d'injection SQL se trouve dans la partie publique de votre site, ils seront en mesure d'accéder qu'une base de données quitter votre site privé non affecté par l'attaque.

Autres conseils

Le temps et l'argent seraient potentiellement une raison. Dans le cas contraire, si vous avez le temps. En fonction des besoins, ne sachant pas exactement les questions à l'étude, il pourrait aussi ajouter beaucoup de complexité ...

HTH.

Est-ce que vous avez jamais un utilisateur avec plus d'un rôle? Pourriez-vous finir par stocker le même utilisateur dans plus d'une base de données? Si oui, je garderais vos utilisateurs dans un DB unifié.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top