Зашифрованные данные в URL-адресах
Я разрабатываю PHP-приложение для управления заказами для компании. Для просмотра заказа URL-адрес в настоящее время /orders/view/3502
.
Я не хочу, чтобы идентификатор заказа отображался в URL, поэтому я использовал библиотеку шифрования CodeIgniter для шифрования идентификатора в URL. URL-адрес (после шифрования) выглядит как /orders/view/AaffGdQQ
.
Проблема, с которой я сталкиваюсь, иногда зашифрованный идентификатор содержит косую черту или знак плюс, которые не работают правильно, когда в URL. CodeIgniter считывает URL-адрес на основе косых черт, таким образом, если зашифрованный идентификатор имеет косую черту, он будет читать это как 2 переменные, а не одну. Кроме того, знаки плюс интерпретируются как пробелы в URL-адресах.
Итак, мой вопрос заключается в том, как я могу зашифровать идентификатор и убедиться, что строка не содержит знака плюс или косой черты?
EDIT: у меня была идея посмотреть, содержит ли зашифрованный идентификатор косую черту или знак плюс, и если да, то зашифровать его снова. По какой-то причине каждый раз, когда идентификатор зашифрован, он отличается, так что это сработает.
3 ответа:
Можно также использовать base64_encode (). Это также сделает его намного длиннее и покажется "более безопасным". Также добавляется слой обфускации.