2012-06-14 3 views
1

Я разрабатываю веб-сайт с использованием ASP.NET MVC 3. В настоящее время мне нужно зашифровать идентификатор URL моего клиента. Например:ASP.NET MVC - Шифрование URL

http://mysite.com/person?id=42 

к чему-то вроде этого:

http://mysite.com/person?id=Dfjhasdfh33kASDG868365çkhg54sdSDFD 

Это нужно быть безопасным. Когда я говорю «безопасно», это означает, что любому трудно найти правильный идентификатор.

Есть ли библиотека для этого?

Многие безопасного веб платежи один из тогда как PayPal использует этот тип подхода: https://paypal.com/br/webscr?info=CNS9tFsVM_tv4c18gHgZ3OMH2zblN7GWDQoyamVF3mzNh7vGDuhiKU3

+1

Определите «безопасный» масштаб вашего проекта. –

+0

Попробуйте этот пост, и, надеюсь, он ответит на ваш вопрос http://stackoverflow.com/questions/6157150/mvc3-encrypted-querystring-parameters – Brian

+1

Что представляет собой идентификатор пользователя? Это текущий пользователь? Почему это необходимо для обеспечения безопасности? Что может случиться, если оно не зашифровано? –

ответ

1

Если вы действительно хотите зашифровать параметр запроса, это очень просто, просто используйте любой шифр, предоставляемый .Net, а затем используйте атрибут или httpmodule для дешифрования параметра.

Главное, чтобы ВСЕГДА проверяли запрос. Если вы можете сделать это POST с анти-подделкой, сделайте это. Затем всегда проверяйте учетные данные пользователя, если этот пользователь имеет доступ к защищенному ресурсу.

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

1

Одним из вариантов были бы сделать ваш ПК в том, что долго со случайной строкой или уникальным идентификатором (GUID).

+0

Но для запросов по этим GUID потребуется много времени. –

+0

В настоящее время возможно генерировать GUID, которые являются последовательными и, следовательно, дружественными к ПК. Если последовательность означает, что они несколько «предсказуемы», и это неприемлемо, вы можете добавить столбец с суррогатным ключом для этого руководства и использовать некластеризованный индекс. – HackedByChinese