При сдаче ресурсов на предприятие появляется форма с отправкой запроса на sell_res.php
В форме присутствует скрытое поле: name=check_code, по логике вещей - защищяющее от CSRF атак.
Но код проверки с перезагрузкой страницы не меняется. Злоумышленник может один раз подсмотреть свой код и написать бота, который по таймеру будет сдавать ресурсы на предприятие.
Как надо.
В идеале при защите от CSRF атак проверочный код (токен) генерируется для каждой формы при каждом запросе. Без знания алгоритма генерации токена - его не возможно подделать.
Если все упирается в нагрузку на БД, то можно генерировать токен примерно по формуле:
md5('salt' + pl_id + obj_id + res_id + date('Y-m-d H') )
обрезать до 5-8 символов и кэшировать токены на час (наподобе кэширования капчи для ГР)
Для более улучшенной защиты форм от CSRF атак необходимо заменить поля
res_id
count
на что-нибудь бессмысленное. сгенированное для каждого пользователя по определенному алгоритму
md5('salt' + res_id + pl_id + obj_id + res_id + date('Y-m-d H') )
md5('salt' + count + pl_id + obj_id + res_id + date('Y-m-d H') )
тогда форма примет вид:
<form action=sell_res.php method=post>
<input type=hidden name=obj_id value=323>
<input type=hidden name=check_code value="dsfdg4">
<input type=hidden name=43gert32 value="1">
<input type=text name=dhr53ww value=0 style="width:40"> |