Как обезопасить себя при использовании конфиденциальных данных пользователя в textareas и передавать их в javascript / ajax - PullRequest
0 голосов
/ 11 октября 2011

У меня есть следующий код

 <textarea class="input" id="input"  onkeypress="ifenter(event,'<?php echo $id ?>"></textarea>

Очевидно, что в этом случае $ id уязвим, и любой, кто использует просто firebug, может изменить $ id и отправить другую переменную. Как мне действовать здесь? Я застрял, и в настоящий момент у меня не возникает идей.

Должен ли я хэшировать это? И если я сделаю это, как я могу его распаковать? Если вы зашифруете его с помощью алгоритма, это будет взломано, не правда ли?

1 Ответ

1 голос
/ 11 октября 2011

Вам необходимо подписать это удостоверение личности с секретом. Допустим, у вас есть идентификатор $id и секрет, известный только серверу $secret, тогда вместо того, чтобы ставить только <?php echo $id ?>, вы должны поставить:

<?php echo $id + "some delimiter" + hash($id, $secret) ?>

Где hash() - некоторая хеш-функция, например, MD5 или SHA-1. Затем вы можете проверить на сервере, соединяя ли ID и секретный ключ тот же самый хеш. Если да, все хорошо, если нет, кто-то изменил ID.

Это самый простой способ. Уже есть некоторые лучшие (труднее взломать) решения, такие как HMAC .

Редактировать: Кроме того, в зависимости от того, что это за идентификатор, вам следует подумать, правильно ли вы поступаете. Если это идентификатор пользователя, вы можете вместо этого использовать сеансы, если это какой-то другой идентификатор ресурса, вместо этого вы должны проверить, есть ли у вошедшего в систему пользователя разрешения на изменение этого ресурса.

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