Если посетители будут просматривать эту страницу только по ссылке, которую вы отправляете по электронной почте, вы можете включить хэш в этот адрес вместо advert_id
- по сути, случайный одноразовый пароль .
Один из распространенных и «достаточно хороших» приемов для генерации такого случайного пароля - взять одну, секретную, действительно случайную строку (я обычно использую grc.com ), объединить ее с уникальным advert_id и хеш все это, скажем, с SHA1()
. Вот так:
UPDATE advert SET advert_hash = SHA1(CONCAT(advert_id, 'lots-of-randomness-here'))
Вы даже можете изменить это, добавив time()
или (еще лучше) случайное число в конец. В результате в вашей базе данных хранится 40-символьная строка, которую никто не может предсказать (не зная секретных данных, которые вы использовали для ее генерации).
Например, я мог бы получить это вместо advert_id=1
:
f2db832ddfb149522442c156dadab50307f12b62
Если бы я хотел незаметно отредактировать advert_id=2
(который создал кто-то еще), мне сначала пришлось бы угадать , что хеш это полностью другая строка:
e5c6a3a9473b814b3230ee7923cbe679fcebc922
Итак, включите это в URL-адрес вместо рекламного_ идентификатора (или, если хотите, в дополнение к рекламному-идентификатору), и вдруг ваши пользователи не смогут испортить чужой контент.