Должен ли я расширить безопасность ASP.NET для публичного сайта?
-
02-10-2019 - |
Вопрос
У меня есть сайт ASP.NET MVC с приложением администрирования частного сайта, закрепленным авторизацией ASP.NET SQL. Мне нужно добавить вход в систему для публичного сайта, чтобы позволить посетителям подписаться на учетную запись.
Я думаю, что я должен создать совершенно отдельное хранилище для общедоступного сайта, а не расширить существующую пользовательскую БД и полагаться на роли, чтобы держать государственных пользователей из заднего офиса. Есть ли причина не делать этого?
Решение
Да, есть. Вы можете изолировать частную базу данных из общедоступной базы данных. Создание 2 учетных записей пользователей базы данных, убедитесь, что у них есть только доступ к необходиму для них 1 базы данных. Общественные и частные приложения будут использовать различные учетные записи. Затем заблокируйте учетные записи базы данных, чтобы убедиться, что у них есть только права, необходимые для функции веб-приложения. (Я не уверен, какая вы используете базу данных. Если вы используете MS-SQL, убедитесь, что у них нет доступа к XP_CMDShell, если вы находитесь под MySQL, убедитесь, что учетная запись не имеет привилегий файлов. Есть другие соображения Но это за пределами этого вопроса.)
Если в общественной части вашего сайта обнаружена уязвимость SQL впрыска, то они смогут получить доступ к тому, что одна база данных, оставляя свой частный сайт, не влияющий на атаку.
Другие советы
Время и потенциально деньги были бы одной причиной. В противном случае, если у вас есть время. В зависимости от необходимости, не зная ровно проблем под рукой, он также может добавить много сложности ...
Хет
У вас когда-нибудь пользователь с более чем одной ролью? Не могли бы вы в конечном итоге хранить одного и того же пользователя в более чем одной базе данных? Если это так, я бы держал своих пользователей в единой БД.