кол-во обращений к странице|пользователь
12345|5
33333|1
22222|34
Вопрос такой, а что если пользователь 12345 поставит себе код www.site.ru/statistica.php?user=22222 ? Тогда ведь он испортит статистику пользователю 22222! (у пользователя 22222 будут прибавляться обращения к странице пользователя 12345).
Как можно (и можно ли) решить эту проблему именно методами криптографии?
Здравствуйте, ramdy2, Вы писали:
R>Пишу статистику для сайтов. Работает она так. Пользователю выдаётся html-код типа
R>www.site.ru/statistica.php?user=12345 R>где statistica.php — скрипт, который подсчитывает кол-во обращений.(как в spylog'е hotlog'е и т. п.)
R>на сервере есть такая таблица типа
R>кол-во обращений к странице|пользователь R>12345|5 R>33333|1 R>22222|34
R>Вопрос такой, а что если пользователь 12345 поставит себе код www.site.ru/statistica.php?user=22222 ? Тогда ведь он испортит статистику пользователю 22222! (у пользователя 22222 будут прибавляться обращения к странице пользователя 12345).
R>Как можно (и можно ли) решить эту проблему именно методами криптографии?
почему нельзя при логине запихать ЮзерИД в переменную сессии и потом пользоваться только ей?
R>>Как можно (и можно ли) решить эту проблему именно методами криптографии?
Ш>почему нельзя при логине запихать ЮзерИД в переменную сессии и потом пользоваться только ей?
Ты имеешь ввиду при регистрации открыть сессию и не закрывать её никогда? Правильно я понял? Поясни пожалуйста.
Просто на hotlog'е они зачем-то передают случайное число ...hotlog_r=""+Math.random()+... и я подумал, что может оно имеет отношение к какой-нибудь цифровой подписи.
Здравствуйте, ramdy2, Вы писали:
R>Как можно (и можно ли) решить эту проблему именно методами криптографии?
Тебе нужно просто решить проблему или решить ее ИМЕННО методами криптографии?
Если решить, то это довольно просто:
надо связать еще и а адрес страницы с количеством посещений.
То есть, таблица будет выглядеть так:
Здравствуйте, ramdy2, Вы писали:
R>Просто на hotlog'е они зачем-то передают случайное число ...hotlog_r=""+Math.random()+... и я подумал, что может оно имеет отношение к какой-нибудь цифровой подписи.
Твоя задача решается методом, предложенным Терминусом; в hotlog'e же, судя по всему, они вставляют случайное число в тело запроса для того, чтобы броузер не кешировал запрос на ресурс и всё-таки обратился к серверу, который и проигнорирует благополучно это число.
Здравствуйте, TepMuHyc, Вы писали:
TMH>Здравствуйте, ramdy2, Вы писали:
TMH>Теперь, о главном: как же добыть адрес страницы откуда вызван скрипт - TMH>он сидит в серверной переменной HTTP_REFERER
Мне не нравится это решение тем, что переменную HTTP_REFERER можно подменить (поковыряться в браузере например).
Здравствуйте, ramdy2, Вы писали:
R>Как можно (и можно ли) решить эту проблему именно методами криптографии?
Криптографическими средствами тут можно было бы воспользоваться, если заставить сервер, размещающий страницу считать какой-нибудь хеш от приватного ключа, url страницы и параметров визитора (например, времени обращения и части его ip-адреса). Тогда ты мог бы проверить подлинность хеша.
В случае произвольного размещения криптографию тут просто никуда не применишь. Остается только отслеживать рефереры и банить хосты-вредители. Это конечно не совсем надежно, но вполне нормально. Визитор ведь не станет подменять referer — ему это попросту не нужно.