• Как защитить голосование от подмены сессии?

    @MacStrate Автор вопроса
    ребят, спасибо за ответы) проблему уже решил, написал выше как, на данный момент такого решения более чем достаточно.
  • Как защитить голосование от подмены сессии?

    @MacStrate Автор вопроса
    xmoonlight: Большое спасибо за помощь! Собственно упомянутые проблемы решены, уже переписал код. Теперь все работает гораздо проще и надежнее чем раньше.
  • Как защитить голосование от подмены сессии?

    @MacStrate Автор вопроса
    xmoonlight: все, понял! просто неправильно с принципом работы сессии разобрался. Сделаю как вы предложили, это даже код упросит порядочно и в принципе как-то повлиять и подсунуть свои данные будет невозможно. На всякий случай, распишу как сделаю, если что-то не так понял, поправите.

    Когда пользователь попадает на сайт, ему присваивается уникальный айди сессии, который сохраняется в куках. Если я в $_SESSION записываю какие-то данные, то они относятся именно к тому айди, который присвоен зашедшему человеку и хранятся у меня на сервере. Когда этот человек обращается к какой-то странице сайта, на которой открывается сессия, то сервер получает записанный в куках айди этой сессии и соответственно после этого можно из $_SESSION извлекать данные, которые относятся к этому айди. Человек эти данные получить никак не может. Правильно?

    Так что если я буду отправлять только left или right, как Вы написали, а дальше сверять со своими данными, записанными в переменные сессии на сервере, то накрутить это дело никак не получится.
  • Как защитить голосование от подмены сессии?

    @MacStrate Автор вопроса
    Да, верно. Я в предыдущем ответе написал, как все это дело у меня работает, думаю то сообщение поможет Вам дать мне точный ответ)
  • Как защитить голосование от подмены сессии?

    @MacStrate Автор вопроса
    Спасибо за ответ. В общем, объясняю как работает. Пользователь заходит на страницу, ему показаны два варианта ответа, выбраны из огромной бд абсолютно рандомно. Каждый со своим айди. Первый например имеет айди 25, второй 340. Зная, что мы показали именно эти два варианта, я формирую хэш md5(соль+ айди_первого (25) + айди второго (340) + соль) и записываю все это дело в $_SESSION['idsess'], например. Когда человек проголосовал, мне отправляются эти два варианта, я их ставлю в том порядке, в котором формировал хэш, снова все это дело составляю через md5(соль + айди_первого_полученного + айди второго_полученного + соль) и сравниваю с записанным значением в $_SESSION['idsess']. Если равны, результаты приняты и голосование проходит, выдавая новые два варианта пользователю на странице и соответственно переписывая сессию по алгоритму описанному выше.

    Я так понял, что данные записанные в $_SESSION сохраняются в куках, либо если те отключены - в адресной строке, так что по сути, можно запомнить какой айди сессии был при вариантах с айди 25 и 340, в результате можно все эти значения подставлять постоянно заново и отправлять на сервер, так что проверка всегда будет проходить. Или все таки на значение в $_SESSION никак повлиять нельзя и я эту тему не совсем правильно понял?
  • Как защитить голосование от подмены сессии?

    @MacStrate Автор вопроса
    Спасибо за ответ, но с флешем не знаком и не думаю, что стоит с ним разбираться ради этого. По-сути, чтобы уникальные айди формировать, надо записывать эти временные данных в бд, после чего очищать через некоторое время, если не были использованы. Обращений к странице голосования очень много, может куча мусора постоянно копиться, т.к. пользователь может зайти на страницу, варианты ответа появятся, сессия создастся, все эт дело запишется в бд, но сам пользователь может не голосовать и уйти со страницы. Запариваться над этим не охота. Айпи+Днс - в процессе голосования пользователю теоретически могут иногда выпадать те же вариантов ответа, которые уже когда то выпадали. Так что этот вариант не подходит.