кодируй например придумай уникальный ID для каждого юзера и требуй его передавать при запросе к скрипту удаления
Mr.M.I.T. я бы даже сказал, не для каждого юзера, а для каждого сеанса авторизации. Можно тупо id сессии передавать. Нету его или он неправильный - игнор запроса или вовсе логаут. Вроде вполне надёжно.
Концептуально проблема решается через обращение к скрипту на собственном сервере типа mydomain.ru/get?af65e, который будет искать в базе идентификатор и соответствующий ему адрес, брать файл и отдавать пользователю.
Mr.M.I.T. mantell товарищи, прежде чем писать, будьте любезны, пробегитесь глазками по теме. спасибо, это совет года. Представь картину: пользователь оставляет коммент Код (Text): [img="admin.php?do=delete&id=10"] . Ессно тут никакого хеша, а значит будет логаут при обращении. Одмин идет на страницу комментариев, что бы удалить злополучный коммент и получает... правильно, логаут. AlexGousev да, нормальное такое решение. К сожалению нет времени сейчас делать так, поэтому просто буду прибавлять хеш на основе секретной строки и сравнивать его. Строку ессно можно будет менять в конфиге.
Koc, я бы советовал тебе самому внимательнее тему прочитать и найти разницу между тем, чтобы было предложено и моим предложением.
Koc так ты требуй передовать нужный код, т.е. типа admin.php?do=del&id=10&code=SID например хацкер не сможет подставить твой SID в ссылку он его не знает
Даже более того, если при авторизации используются именно сессии, такое решение выглядит наиболее правильным с точки зрения принципа их работы.
Есть один простой способ, как не дать вставив линк в img скажем сделать какое-то действие: всегда делайте подтверждение действия через POST запрос. Т.е. пока у вас GET - ничего не должно происходить, только спрашивать - удалить? Да/Нет.
Mr.M.I.T. SID стырить можно, он же в куках хранится как ID сессии. Если не обрабатываются нормально линки, то через document.cookie можно всё вытащить всёравно. Так что POST это единственная и безпардонная защита, которая 100% защищает от такого рода атак.