Как реализовать редактирование записи mysql по временной ссылке?
На сайте есть возможность не зарегистрированным пользователям добавлять объявления. Как им дать возможность потом их редактировать?
Созрела идея временной ссылки. Пользователь жмет ссылку "редактировать", ему на почту, которая была указана при подаче объявления, приходит временная ссылка, он по ней переходит и редактирует данные.
Но вот как все это правильно и безопасно реализовать?
Самое простое, - генерируйте пароль и высылайте его вместе с временной ссылкой.
Дополнительно можно сделать ограничения на ввод неправильного пароля(в т.ч. числе временные паузы, каптчу и т.п.).
Для правильного вопроса надо знать половину ответа
Генерируйте ссылку вида ?id=1212&hash=1bc29b36f623ba82aaf6724fd3b16718
При переходе по ссылке сверяйте хэш, после редактирования высылайте ссылку с новым хэшем.
UDAV99: Rsa97: минус безопасности в том, что Вы допускаете вероятность, что кто-либо может тупо набрать такую же ссылку и сразу попасть в редактирование данных. никогда не позволяйте этого делать.
P.S.: вероятность ничтожна мала(зависит от хеша), но она есть.
UDAV99Rsa97 а если еще и хеш менять только после редактирования, только ленивый в случае интереса не сделает перебор. в любом случае просто одну ссылку такого вида никогда не используйте. а если все же надумали использовать примите дополнительные меры безопасности(например таймоут, временная блокировка и т.п.).
WebEditor: и сколько времени, по Вашему, понадобится на подбор ссылки? Количество вариантов хэша MD5 - 3.4*1038. Даже если будете перебирать по 1000 вариантов в секунду (что маловероятно - запрос к удалённому серверу имеет определённую длительность), то потратите 1028 лет.
Rsa97: 10 в 28 лет это конечно круто, но это если использовать обычный перебор, в предложенном мной варианте вероятность значительно ниже за счет доп. безопасности в виде пароля(и вероятность подбора увеличится в N в N лет). А если еще и ставить таймаут, то вообще почти бесполезно пытаться взломать. Лично я никогда не позволю лишь по одной ссылке редактировать данные. Такие ссылки хороши для сброса пароля и т.п.