Должен ли я расширить безопасность ASP.NET для публичного сайта?

StackOverflow https://stackoverflow.com/questions/3686029

Вопрос

У меня есть сайт ASP.NET MVC с приложением администрирования частного сайта, закрепленным авторизацией ASP.NET SQL. Мне нужно добавить вход в систему для публичного сайта, чтобы позволить посетителям подписаться на учетную запись.

Я думаю, что я должен создать совершенно отдельное хранилище для общедоступного сайта, а не расширить существующую пользовательскую БД и полагаться на роли, чтобы держать государственных пользователей из заднего офиса. Есть ли причина не делать этого?

Это было полезно?

Решение

Да, есть. Вы можете изолировать частную базу данных из общедоступной базы данных. Создание 2 учетных записей пользователей базы данных, убедитесь, что у них есть только доступ к необходиму для них 1 базы данных. Общественные и частные приложения будут использовать различные учетные записи. Затем заблокируйте учетные записи базы данных, чтобы убедиться, что у них есть только права, необходимые для функции веб-приложения. (Я не уверен, какая вы используете базу данных. Если вы используете MS-SQL, убедитесь, что у них нет доступа к XP_CMDShell, если вы находитесь под MySQL, убедитесь, что учетная запись не имеет привилегий файлов. Есть другие соображения Но это за пределами этого вопроса.)

Если в общественной части вашего сайта обнаружена уязвимость SQL впрыска, то они смогут получить доступ к тому, что одна база данных, оставляя свой частный сайт, не влияющий на атаку.

Другие советы

Время и потенциально деньги были бы одной причиной. В противном случае, если у вас есть время. В зависимости от необходимости, не зная ровно проблем под рукой, он также может добавить много сложности ...

Хет

У вас когда-нибудь пользователь с более чем одной ролью? Не могли бы вы в конечном итоге хранить одного и того же пользователя в более чем одной базе данных? Если это так, я бы держал своих пользователей в единой БД.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top