Frage

Ich habe eine Seite ASP.NET MVC mit einer privaten Anwendung Standortverwaltung gesichert mit ASP.NET SQL-backed Autorisierung. Ich brauche ein Login für die öffentliche Website hinzufügen, damit Besucher für ein Konto anmelden.

Ich denke, ich sollte völlig getrennte Speicher für die öffentliche Website erstellen, anstatt erweitern die bestehenden Benutzer db und stützen sich auf Rollen öffentliche Benutzer zu halten aus dem Back-Office. Gibt es einen Grund, dies nicht zu tun?

War es hilfreich?

Lösung

Ja, es gibt. Sie können die private Datenbank aus der öffentlichen Datenbank isolieren. Erstellen 2-Datenbank Benutzerkonten, stellen Sie sicher, sie haben nur Zugriff auf die Datenbank 1 die sie benötigen. Die öffentlichen und privaten Anwendungen werden verschiedene Konten verwenden. Dann sperren die Datenbank zu machen Konten sicher nur sie haben die für die Web-App-Funktion benötigt Rechte. (Ich bin nicht sicher, welche Datenbank Sie verwenden. Wenn Sie MS-SQL stellen Sie sicher, indem sie keinen Zugang zu xp_cmdshell, wenn Sie unter mysql sind sicher, das Konto nicht FILE Privilegien hat. Es andere Überlegungen sind aber dies ist nicht in den Anwendungsbereich dieser Frage.)

Wenn eine SQL-Injection-Schwachstelle im öffentlichen Teil Ihrer Website gefunden wird, dann wird sie zugreifen kann, dass eine Datenbank, um Ihre private Seite unbeeinflusst durch den Angriff zu verlassen.

Andere Tipps

Zeit und möglicherweise Geld wäre ein Grund sein. Andernfalls, wenn Sie die Zeit haben. Je nach Bedarf zu wissen, nicht genau die Fragen auf der Hand, könnte es auch eine Menge Komplexität ...

hinzufügen

HTH.

Werden haben Sie jemals einen Benutzer mit mehr als einer Rolle? Könnten Sie den gleichen Benutzer in mehr als eine Datenbank am Ende zu speichern? Wenn ja, würde ich Ihre Nutzer in einem einheitlichen DB halten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top