собственный счетчик (система Java+PHP+MySQL)

Andrey_spb

Новичок
собственный счетчик (система Java+PHP+MySQL)

Добрый день,

очень нужна подсказка она же - помощь

итак:
-------------------------------------------------------------------------------
есть JAVA скрипт генерирующий картинку:
<script>
from=escape(document.referrer);
to=document.URL;
document.write('<img src=http://127.0.0.1/log/counter.php?sid=1&from=\"'+from+'\"&to=\"'+to+'\">');
</script>
Тем самым инициируем работы скрипта counter.php
сюда идут переменные from, to, sid(ID сайта в системе)

сам скрипт counter.php также имеет часть переменных собственных
$REMOTE_ADDR
$DATE
$TIME

Также создаю для пользователя cookies чтобы второй раз он
уже считался как хит а не как хост
--------------------------------------------------------------------------------

Всё это добавляется в базу данных новой строкой каждый раз данные все эти, потом они буду обрабатываться другим скриптом и идти в историю статистики - но дело сейчас не об этом :)


* Как можно избежать накруток счётчика и макс. сделать всё безопасным

--------------------------------
КОНКРЕТНЫЕ ВОПРОСЫ
--------------------------------
0) [главный] - по нагрузке на сервер на запись каждый раз при инициации скрипта - это очень большая нагрузка?

1) Как на стороне сервера(скриптом счётчиком php) проверить работу у пользователя cookies
2) Как на стороне сервера(скриптом счётчиком php) проверить работу у пользователя Java
3) Как на стороне сервера(скриптом счётчиком php) проверить чтобы вызванная туда картинка-скрипт была вызвана именно на тот сайт которые надо учитывать а не на какой - нить другой *.narod.ru

Всё есть вопросы по php - есть ли возможность такое реализовать


Большое спасибо за внимание и ответы
 

Фанат

oncle terrible
Команда форума
0) вопрос непонятен. что такое инициация скрипта, и чем отличаеося от просто запуска?
1) проверить - никак. Разумеется. Всё, что у тебя есть - это старая кука, которую ты ставил в первый раз. Вот от неё и пляши.
2) Очень просто. Ты, разумеется, имеешь в виду javascript, который по неграмотности путаешь с Явой. Так вот. у 100% зарегистрированных посетителей яваскрипт включён. так и пиши в свою статистику.
3) очень просто. если среди рефереров попадаются левые сайты - значит, счётчик размещён на другом.
 

Andrey_spb

Новичок
Автор оригинала: Фанат
0) вопрос непонятен. что такое инициация скрипта, и чем отличаеося от просто запуска?
1) проверить - никак. Разумеется. Всё, что у тебя есть - это старая кука, которую ты ставил в первый раз. Вот от неё и пляши.
2) Очень просто. Ты, разумеется, имеешь в виду javascript, который по неграмотности путаешь с Явой. Так вот. у 100% зарегистрированных посетителей яваскрипт включён. так и пиши в свою статистику.
3) очень просто. если среди рефереров попадаются левые сайты - значит, счётчик размещён на другом.
0) - да, именно запуск скрипта при каждом заходе посетителя на другой сайт
1) - ок
2) - нет, я не совсем понятно объяснил - у меня есть сайт статистика.ру(допустим :) ) - который дает код счётчика другим сайтам - вот на другой сайт заходит посетитель и вызывает мой скрипт(статистика.ру/counter.php?sid=2) - я хочу чтобы скрипт работал только в случае работы у этого посетителя javascript - иначе exit;

иными словами чтобы просто какой нить робот не вызывал мой скрипт просто набором его адреса и передачей параметров


3) А Как сделать опятьже чтобы сам скрипт (если такое возможно) в базу писал только "правильных" посетителей?
 

Фанат

oncle terrible
Команда форума
0) если таблица большая, и в ней стоят индексы - то будут проблемы.
поэтому лить надо либо в текстовый файл, либо в таблицу без индексов. из которых забирать уже другим скриптом, который приводит статистику к показывабельному виду.
2) Включи голову и подумай. Пока твой вопрос больше напоминает анекдот. И над ним будут смеяться.
3) зачем? уличил в накрутке - забанил сайт.
На этапе записи вообще отследить накрутку сложно. это делается по логам, после.

-~{}~ 07.01.07 16:03:

иными словами чтобы просто какой нить робот не вызывал мой скрипт просто набором его адреса и передачей параметров
это не "иными словами". это вообще другой вопрос.
Очень печальный.
Я-то думал, что ты хочешь определить для статистики. И для статистики там будет 100%.
А тебе для отсекания накрутки. то есть, ты задашь вопрос - можно ли из пехапе скрипта узнать, включён ли яваскрипт на клиенте. Это значит, что ты не понимаешь САМЫХ ОСНОВ.
Тебе сюда: PHP FAQ: Самые основы. Как работает PHP.
Читать очень внимательно, и думать. в контексте своих вопросов.

а накрутки отсекаются после. анализом логов.
а 100% защиты от накрутки все равно не существует.
 

Andrey_spb

Новичок
0) таблица на 5 полей, id тип счётчик он же и ключевое поле
размер каждого поля 255 символов

остается только номер (2) из непонятого мной

попробую объяснить ход своих анекдотичных мыслей :)

скрипт счетчика (counter.php) в самом сайте выглядит:
<script>
from=escape(document.referrer);
to=document.URL;
document.write('<img src=http://127.0.0.1/log/counter.php?sid=1&from=\"'+from+'\"&to=\"'+to+'\">');
</script>
и тут понятно что если не включен Javascript он не будет отображен

------------------------------------------------------------------------
вопрос в том, что - если дать скрипту-роботу хакера адрес http://127.0.0.1/log/counter.php со всеми параметрами (что можно взять из тела страницы где он вызывается как и должен) - то этот злобный скрипт начнет его вызывать в цикле миллион раз скажем - и вот этого я бы хотел избежать - как бы это вот реализовать - есть такая возможность?
 

Фанат

oncle terrible
Команда форума
и тут понятно что если не включен Javascript он не будет отображен
молодец. правильно соображаешь.
вопрос в том, что - если дать скрипту-роботу хакера адрес http://127.0.0.1/log/counter.php
вопрос в том, что скрипту-роботу хакера надо дать адрес http://phpfaq.ru/na_tanke
чтобы он прочитал, наконец, букварь протокола НТТР и направил свои размышления в нормальное русло

-~{}~ 07.01.07 16:18:

Вообще, вопрос отлова накрутки относится к тем, которые решаются не парой строчек на форуме.
и не с тем уровнем заний, как у тебя.
И УЖ СОВСЕМ ТОЧНО они не решаются НА ЛЕТУ, как ты себе это воображаешь - что есть такой волшебный панраметр, по которому можно отличить "робота" от "посетителя", твой счётчик радостно этот параметр отлавливает, и "ничего в базу не записывает"

хотя попроси тебя описать различия между роботом и посетителем - закопаешься на первой же минуте.
 

Andrey_spb

Новичок
IP. В таком случае для серъёзной накрутки потребуется серъёзная база анонимных / элитных прокси
---------------------------------------------------------------------------
тогда в скрипт счётчика надо будет встраивать проверку по базе на аналогичный ip+cookies - чего я не хотел дабы не тормозить скрипт, но наверное тогда:
select IP_filed from today_log where ip='$var' и т.п.
но тогда опять же к вопросу о работоспособности ....



кстати а если иметь фаилик с 5-10 последними IP тогда это и не к базе будет запрос и обработает он быстрее - как вы считаете?
 

Andrey_spb

Новичок
ну c одного IP внешнего могут заходить несколько разных юзеров

Фанат скажите пожалуйста - по поводу идеии записи 5-10 последних IP в отдельных фаилик и проверки оттуда - дабы избежать накрутки?
 

Фанат

oncle terrible
Команда форума
ну c одного IP внешнего могут заходить несколько разных юзеров
ну и что?
по поводу идеии записи 5-10 последних IP в отдельных фаилик
как интересно. походил я по сайту, или открыл сразу несколько страниц в новых окнах (мне так читать удобнее) - хоп, меня сочли накрутчиком!
Фанат скажите пожалуйста
Я УЖЕ СКАЗАЛ.
способ, которым отлавливаются накрутки.
только кто-то русского языка, похоже, не понимает
 

Andrey_spb

Новичок
кукисами проверять можно один это человек с IP адреса или это 3 разных человеках с одного IP

по поводу разных страниц открытия - действительно..чето я не подумал...
 

Фанат

oncle terrible
Команда форума
НЕЛЬЗЯ проверять кукисами. у них у всех могут быть отключены куки.
 

Andrey_spb

Новичок
тогда как же выдлить с одного IP что это разные пользователи и писать не хиты=50 а то что это 5 юзеров по 10 хитов?
 

Andrey_spb

Новичок
буду читать мануал :)

-~{}~ 07.01.07 19:50:

почитал про HTTP заголовки, всё рано не вкурил как можно отличить скрипт-робот от простого посетителя

мне надо просто избежать ситуации - когда обращение к скрипту которые считает хиты осуществляется другим вредоносным :) скриптом.



:(
 

Фанат

oncle terrible
Команда форума
при чём здесь роботы? мы говорили о том, как же выдлить с одного IP что это разные пользователи

а про вредоносные скрипты мы уже поговрили. и тема, как я надеялся, закрыта.
 

Andrey_spb

Новичок
да, прихожу к выводу что надо делать php счётчик встроенный в тело страницы, дабы всего этого можно было избежать, создать фаилик куда писать IP+посещенный адрес и при повторном запросе для данного IP страницы - не фиксировать ее в базе.. хотя тож...

тема думаю закрыта, еще раз спасибо :)

п.с.
почитал в нете что заголовкам HTTP доверять нельзя,их легко можно подделать :(
 
Сверху