Как вы можете защитить / зашифровать строку запроса в asp.net? - PullRequest
3 голосов
/ 07 июня 2010

Мне было интересно, как можно зашифровать / расшифровать строку запроса на простой странице asp.net? некоторые значения необходимо передавать между разными страницами, но строку запроса нельзя изменить или прочитать.

Некоторые говорят, что httphandles может быть решением для этого.

Есть мысли?

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:

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

Cheers, M.

Ответы [ 4 ]

2 голосов
/ 12 января 2011

Мне нужно было сделать это, и просто для справки это было выбранное мной решение.

Используйте HTTPModule для шифрования и дешифрования.Затем просто поместите модуль в файл web.config.

Нашел его здесь: https://madskristensen.net/blog/httpmodule-for-query-string-encryption/

Из статьи:

Нам нужен HttpModule, которыйможет превратить зашифрованную строку запроса в обычную читаемую, так что мы все еще можем использовать нашу старую логику, такую ​​как Request.QueryString ["user"].Другими словами, мы хотим, чтобы пользователь увидел это

? Enc = VXzal017xHwKKPolDWQJoLACDqQ0fE // wGkgvRTdG / GgXIBDd1

, а ваш код видит это

? User = 123 & account = 456.

В примере кода в статье есть модуль, который вы бы добавили.

2 голосов
/ 07 июня 2010

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

Вот проект, который покажет вам, как сделать симметричное шифрование. http://www.codeproject.com/KB/security/SimpleEncryption.aspx

Смею упомянуть об этом, потому что это приведет к значительным накладным расходам, но вы можете разместить свою информацию в состоянии просмотра и использовать посты на нескольких страницах для передачи информации:

http://www.velocityreviews.com/forums/t119789-view-state-in-previous-page-using-cross-page-postback.html

1 голос
/ 07 июня 2010

Как насчет добавления необходимого вам значения в Viewstate? Viewstate может быть зашифрован и проверен для вас.

ViewState["myKey"] = "myValue";

, а затем и позже

string myValue = ViewState["myKey"]

Чтобы включить шифрование:

<%@Page ViewStateEncryptionMode="Always" %>

или

<configuration>
   <system.web>
      <pages ViewStateEncryptionMode="Always" />
   </system.web>
</configuration>
0 голосов
/ 02 мая 2014

Вот проект, который покажет вам, как сделать симметричное шифрование. http://www.codeproject.com/KB/security/SimpleEncryption.aspx

Смею упомянуть об этом, потому что это приведет к значительным накладным расходам, но вы можете разместить свою информацию в состоянии просмотра и использовать посты на нескольких страницах для передачи информации:

http://www.velocityreviews.com/forums/t119789-view-state-in-previous-page-using-cross-page-postback.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...