Як краще зашифрувати url

  • PHP
  • шифрування
  • алгоритми

При паролі шифрування в 11 символів, такий:
5BRpsImR02MaR2gWlDZS__OyMetPHaG3MtacaX6C5XgO9YornNgBVQD89RAaifdT-3NGqWt9MqB4dGIQhVzeAolw8kky5ELUf7hJ2QaDmQe7J4WPdxMlgvbKncefCrPbx1o_ech-UW87DCuVJAkchE-bf0I8t8W0x1LKoLJSBX_slQV6VYffjhHUQiA5Iz-iQ7UMYrWqUQ

При паролі шифрування в 5 символів, такий:
tFR6K4OibiwsIpIQ3jClkyRhxVaVH9lG0w_hwoMAbDq3qQELIoyXYJAXkR_LPJhFt1tQvbq_e_1YehYQaXMWCUfIqLQSST2yk7zHJq-O4i_1xphtk3dMSxiMhdO-ZNRCAmNZZJTNIZbC7evV3Vs4MpDU4rLw6FeMQJLynplcsJ8cvOxvwenoWw1nxg

В HTML листи посилання повинні бути такі: URL і вони будуть виходити дуже довгі в тексті. Зате зловмисник не зможе підібрати токен і спотворити статистику.

Як це можна покращити? Інші сервіси адже теж використовують такий підхід?

Запропоную найпростіший варіант, якщо посилання в листах повторюються (не унікальні для кожного листа) - занести посилання в БД. Далі для письма з номером 1234567 вибираємо посилання номер 123. Обчислюємо $ hash = md5 ( 'VerifyRedirect:'. $ Messageid. ':'. $ Urlid);
У лист вставляємо посилання www.mydomain.ru/redirect.php?url=123msg=1234567hash=$hash
Хоч все і відкрито, але не можна поміняти ніякої символ - в redirect.php можна буде перевірити знову по md5 правильність параметрів, витягнути з БД посилання і зробити редирект.

Схожі статті