Мне нужно зашифровать имена моих элементов формы http - PullRequest
0 голосов
/ 15 марта 2010

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

Ответы [ 3 ]

4 голосов
/ 15 марта 2010

Что вы собираетесь сделать этим?

  • Это не помешает никому анализировать форму или предоставлять поддельные данные. Если они посмотрят на источник страницы и увидят <p>Email: <input type='text' name='skhge,f'></p>, то для них будет совершенно ясно, что «skhge, f» - это имя поля электронной почты, поэтому они могут просто подавать поддельные данные под этим именем вместо «электронной почты». ».

  • Один из ваших ответов на комментарии к вопросу, по-видимому, подразумевает, что вы обеспокоены тем, что форма перехватывается при ее отправке пользователю. Если это так, используйте SSL. Он шифрует трафик в обоих направлениях, так что вы защищены от любого перехвата таким образом, а простое сокрытие имен полей не обеспечит никакой защиты. (Мой первый пункт в равной степени относится к подслушивающему устройству и к конечному получателю данных.)

  • Единственный возможный сценарий, который я могу придумать, где это может принести какую-либо выгоду, - это если вы беспокоитесь о том, что кто-то строит бота для отправки вам форм, но даже тогда это неправильный подход - если вы Вы шифруете имена полей, и они будут оставаться неизменными при каждой отправке формы, поэтому бот будет просто писать, чтобы каждый раз отправлять «skhge, f» вместо «email».

    Чтобы помешать боту таким способом, вам нужно будет указывать случайные имена полей с каждой формой, а не зашифрованные имена, и ваши ответы на предложение использовать GUID указывают на то, что вы не хотите сохранять поле имя -> значение карты для каждой отправленной формы. Поддержание такой карты - единственное, что может замедлить работу автора ботов, и даже это не сильно их замедлит. Если вы не примете исключительных мер для запутывания макета формы и текстового содержимого (например, тех, которые использовались спамерами при попытке пропустить HTML-почту через фильтры спама), мне, как автору бота, было бы легко запросить пустую форму до представить и сопоставить текстовые метки, представленные пользователю (например, видимый пользователю текст «Email:») с соответствующим полем ввода и получить правильное имя поля («skhge, f») таким образом.

Так что я не совсем уверен, какова ваша намеченная цель, но я * 99% уверен, что шифрование имен полей не будет лучшим способом сделать это - если это вообще сработает.

0 голосов
/ 15 марта 2010

Если вы беспокоитесь о том, что кто-то может связать имя ввода с тем значением, которое оно несет, почему бы просто не использовать направляющие вместо значимых имен переменных?

0 голосов
/ 15 марта 2010

Возможно, вам лучше сопоставить имена со случайными значениями на их стороне сервера.

[lkjgh] = 'username';
[hjsaf] = 'email';

Если вы переназначаете каждый запрос, просмотр кода не выявит ничего ценного.

Все же заставляет меня задуматься, почему это требование? Обычно SSL предотвращает подслушивание просто отлично.

...