Вопрос по криптографии
От: ramdy2  
Дата: 03.01.03 13:09
Оценка:
Пишу статистику для сайтов. Работает она так. Пользователю выдаётся html-код типа

www.site.ru/statistica.php?user=12345
где statistica.php — скрипт, который подсчитывает кол-во обращений.(как в spylog'е hotlog'е и т. п.)

на сервере есть такая таблица типа

кол-во обращений к странице|пользователь
12345|5
33333|1
22222|34

Вопрос такой, а что если пользователь 12345 поставит себе код www.site.ru/statistica.php?user=22222 ? Тогда ведь он испортит статистику пользователю 22222! (у пользователя 22222 будут прибавляться обращения к странице пользователя 12345).

Как можно (и можно ли) решить эту проблему именно методами криптографии?
Re: Вопрос по криптографии
От: Шура Латвия  
Дата: 03.01.03 14:55
Оценка:
Здравствуйте, 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>Как можно (и можно ли) решить эту проблему именно методами криптографии?


почему нельзя при логине запихать ЮзерИД в переменную сессии и потом пользоваться только ей?
Re[2]: Вопрос по криптографии
От: ramdy2  
Дата: 03.01.03 18:29
Оценка:
Здравствуйте, Шура, Вы писали:


R>>Как можно (и можно ли) решить эту проблему именно методами криптографии?


Ш>почему нельзя при логине запихать ЮзерИД в переменную сессии и потом пользоваться только ей?


Ты имеешь ввиду при регистрации открыть сессию и не закрывать её никогда? Правильно я понял? Поясни пожалуйста.

Просто на hotlog'е они зачем-то передают случайное число ...hotlog_r=""+Math.random()+... и я подумал, что может оно имеет отношение к какой-нибудь цифровой подписи.
Re: Вопрос по криптографии
От: TepMuHyc  
Дата: 03.01.03 18:31
Оценка:
Здравствуйте, ramdy2, Вы писали:

R>Как можно (и можно ли) решить эту проблему именно методами криптографии?

Тебе нужно просто решить проблему или решить ее ИМЕННО методами криптографии?

Если решить, то это довольно просто:
надо связать еще и а адрес страницы с количеством посещений.
То есть, таблица будет выглядеть так:

userid|addr                |visits
----------------------------------
1111  |http://host1/uri1   |   123
1111  |http://host1/uri2   |   456
2222  |http://host2/uri3   |   789
2222  |http://host2/uri4   |   121


В результате, ты (или юзер) сразу увидит что кто-то юзает его UID.
И, если сие нежелательно, блокирует "чужие" адреса от появления в статистике.

Теперь, о главном: как же добыть адрес страницы откуда вызван скрипт —
он сидит в серверной переменной HTTP_REFERER
____________________
God obviously didn't debug, hasn't done any maintenance, and no documentation can be found. Truly amateur work.
Re[3]: Жук в кубе
От: Andy77 Ниоткуда  
Дата: 03.01.03 19:12
Оценка:
Здравствуйте, ramdy2, Вы писали:

R>Просто на hotlog'е они зачем-то передают случайное число ...hotlog_r=""+Math.random()+... и я подумал, что может оно имеет отношение к какой-нибудь цифровой подписи.


Твоя задача решается методом, предложенным Терминусом; в hotlog'e же, судя по всему, они вставляют случайное число в тело запроса для того, чтобы броузер не кешировал запрос на ресурс и всё-таки обратился к серверу, который и проигнорирует благополучно это число.
Re[2]: Вопрос по криптографии
От: ramdy2  
Дата: 04.01.03 07:04
Оценка:
Здравствуйте, TepMuHyc, Вы писали:

TMH>Здравствуйте, ramdy2, Вы писали:


TMH>Теперь, о главном: как же добыть адрес страницы откуда вызван скрипт -

TMH>он сидит в серверной переменной HTTP_REFERER

Мне не нравится это решение тем, что переменную HTTP_REFERER можно подменить (поковыряться в браузере например).
Re: Вопрос по криптографии
От: Lexey Россия  
Дата: 11.01.03 12:20
Оценка:
Здравствуйте, ramdy2, Вы писали:

R>Как можно (и можно ли) решить эту проблему именно методами криптографии?

Криптографическими средствами тут можно было бы воспользоваться, если заставить сервер, размещающий страницу считать какой-нибудь хеш от приватного ключа, url страницы и параметров визитора (например, времени обращения и части его ip-адреса). Тогда ты мог бы проверить подлинность хеша.
В случае произвольного размещения криптографию тут просто никуда не применишь. Остается только отслеживать рефереры и банить хосты-вредители. Это конечно не совсем надежно, но вполне нормально. Визитор ведь не станет подменять referer — ему это попросту не нужно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.