Шифровать идентификаторы в переменных URL - PullRequest
1 голос
/ 19 декабря 2010

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

Ответы [ 5 ]

2 голосов
/ 19 декабря 2010

да ладно, поэтому для конфиденциальной информации лучше всего использовать сеансы, безопасны ли идентификаторы таблиц и т. Д. В переменной GET?

Да, конфиденциальная информация не должна покидать ваш сервер. Используйте сеансы.

Что касается «безопасны ли идентификаторы таблиц в URL»: я не знаю, есть ли что-нибудь плохое, что пользователь мог бы сделать, зная идентификатор таблицы? Если это так, вам нужно это исправить. Обычно вам нужно передать некоторый вид идентификатора, хотя, неважно, является ли это "идентификатором нативной таблицы" или каким-то другим случайным идентификатором, который вы придумываете. В показе идентификатора записи в URL нет ничего небезопасного, что само по себе абсолютно ничего не значит. То, как ваше приложение использует этот идентификатор, может открывать или не открывать дыры в безопасности.
Кроме того, подумайте, может ли пользователь легко угадать другие идентификаторы, которые он не должен знать, и означает ли это что-нибудь плохое для вашей безопасности.

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

0 голосов
/ 14 августа 2013

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

http://www.stumbleupon.com/su/1nZ6bS/:1PcFQMI0:6oJD.Hd1/www.ibm.com/developerworks/library/os-php-encrypt/index.html/

0 голосов
/ 19 декабря 2010

Вы можете зашифровать то, что вы передаете перед передачей, или вы можете выполнить всю связь по зашифрованному каналу (например, https или ssh).

0 голосов
/ 19 декабря 2010

Ваши переменные GET называются так, как вы их называете, и им присваиваются любые значения, которые вы выбираете для их присвоения.Итак, да: они, безусловно, могут быть зашифрованы или, если хотите, просто скрыты.Если вы планируете шифровать переменные, тогда в PHP доступно довольно много опций .

. Выше я бы рекомендовал использовать что-то вроде urlencode.

В общем, я бы предложил использовать POST вместо GET, предполагая, что вы получаете переменные из элемента формы.С другой стороны, возможно, было бы разумнее использовать переменные сеанса.

0 голосов
/ 19 декабря 2010

Звучит так, будто вы хотите передать конфиденциальную информацию как параметр GET.

Не делайте этого - используйте $_SESSION, если можете.

Однако, если вы хотите, чтобы ваши параметры были закодированы(т.е. => +) используйте urlencode().

$a = 'how are you?';

echo urlencode($a); // how+are+you%3F
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...