Какой способ передачи параметров более безопасен: URL, скрытые поля или файлы cookie? - PullRequest
2 голосов
/ 22 мая 2011

Я использую intraweb, и он дает мне 3 варианта для передачи параметров.

  1. Использование параметра ? в URL
  2. Использование скрытых полей
  3. Использование куки

Что касается моего кода, то какой вариант я выберу, на самом деле не имеет значения, фреймворк абстрагирует меня от этого.

Но какой из них более защищен от вмешательства пользователя?

Ответы [ 5 ]

4 голосов
/ 22 мая 2011

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

Ни один из методов сам по себе не обеспечивает какого-либо уровня безопасности.

РЕДАКТИРОВАТЬ: Одно из предложений в отличной статье, на которую указала Лэнс, - хранить ваши конфиденциальные данные.данные на сервере и передают только cookie клиенту.Это другое использование термина cookie , и его более правильно называть идентификатор сеанса , который может передаваться между сервером и клиентом с использованием любого из трех методов, которые вы используете.рассматривают.

1 голос
/ 22 мая 2011

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

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

0 голосов
/ 22 мая 2011

К тому, что уже сказано, я хотел бы добавить, что когда у вас есть параметры в URL, давайте создадим закладки - http://bikes.com/catalog.aspx?category=downill [не реальный адрес]. Так что в некоторых случаях это может быть лучше, чем в двух других.

0 голосов
/ 22 мая 2011

Ни один из них не является безопасным (хотя неясно, какую именно безопасность вы имеете в виду).

Одно очевидное отличие, конечно, состоит в том, что параметры URL всегда видны - если пользователь создает закладку или отправляетURL кому-то, параметр идет с ним.

0 голосов
/ 22 мая 2011

С точки зрения безопасности, все они должны обрабатываться одинаково на сервере.То, что переменная передается через передачу голубем вместо GET, не означает, что она безопасна.Это все еще исходит от злого пользователя.

Поэтому убедитесь, что вы используете одинаковые механизмы безопасности для всех них.

...