Шифрование внешних ключей из базы данных перед отправкой в ​​браузер - PullRequest
1 голос
/ 08 ноября 2010

Я только что наткнулся на код, который, кажется, шифрует ключи базы данных перед отправкой их клиенту (WebBrowser, Silverlight и т. Д.).

В качестве иллюстрации предположим, что у вас есть список учащихся для внеклассных занятий и определенные между ними отношения. Каждый раз, когда данные записываются на страницу ASPX, идентификаторы StudentID и ActivityID шифруются. Каждый раз, когда производится запись или изменение, это значение отправляется обратно на сервер, расшифровывается и сохраняется в базе данных.

Какие могут быть причины для раскрытия данных таким способом? Это нормальная практика?

Если это выборочное шифрование является хорошей практикой, каковы наилучшие способы его использования?

1 Ответ

0 голосов
/ 08 ноября 2010

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

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

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

Мне нравится этот метод расширения для легкого шифрования / дешифрования: http://www.extensionmethod.net/Details.aspx?ID=69

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

...