Защита редактируемых страниц ASP.NET при использовании строки запроса для передачи идентификатора страницы. - PullRequest
1 голос
/ 12 октября 2011

Использование поставщика членства ASP.NET ...

Где лучше всего разместить код, защищающий страницы с редактируемым контентом от пользователей, которые не имеют к нему доступа.

Например, URL:

www.example.com/editPage.aspx?pageId=12

Если доступ пользователей к определенной странице связан с их уникальным идентификатором (GUID) к таблице, в которой хранятся страницы, к которым они могут получить доступ.

tblUsers.UserId --> tblPagePermissions.PageID

Чтобы люди не могли просто изменить pageId в URL-адресе, лучше всего сделать проверку при загрузке страницы, чтобы убедиться, что у них есть доступ?

Есть ли лучший способ, чем просто посмотреть текущийвошли в систему GUID пользователей в базе данных в Page_Load () и сверяются с таблицей разрешений.

Это скорее общий вопрос, а не связанный с чем-то, над чем я сейчас работаю.

Где лучше всего использовать код, защищающий эти страницы, наиболее подходящим является проверка в Page_Load () в editPage.aspx, или есть более эффективный способ сделать это?

Я думаю, что больше абгде лучшее место для проверки, вне зависимости от того, проверяю ли я пользователя или его роль.

Page_Load (), HTTPModule, Somewhere else?

Я уверен, что не использовать QueryString было бы безопаснее, но предположим, что именно это и используется.

Ответы [ 2 ]

1 голос
/ 12 октября 2011

Обычно я делаю это, создавая класс pagebase и заставляя все защищенные страницы наследовать его.Затем я обрабатываю page_load в базе данных и выполняю там проверку.

0 голосов
/ 12 октября 2011

Независимо от метода (ов), которые вы используете, вы всегда должны проверять ввод, полученный от клиента.

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

...