Как обрабатываются данные у счетчиков, как spylog?

123 4
E
На сайте с 21.09.2009
Offline
283
3094

Здравствуйте.

"Пилил" счетчик посещений для себя. Потом стало интересно, а как делают счетчики spylog или li статистика, что у них нет ссылки на сервер передачи данных например page.php, а в ссылке только /counter

Как они получают данные? Чем обрабатывается? Можно ли на .php скрыть само расширение, чтобы сценарий также скрытно обрабатывался?

Спасибо за ответы.

H
На сайте с 21.08.2004
Offline
122
#1
easywind:
Здравствуйте.
Можно ли на .php скрыть само расширение, чтобы сценарий также скрытно обрабатывался?

Спасибо за ответы.

Для скрытия в файле .htaccess нужно прописать документ по умолчанию (/somedir/.htaccess):

DirectoryIndex counter.php

после этого при обращении к папке (/somedir/) будет обрабатываться counter.php

Можно и url rewrite использовать, назначить обработчик файлов без расширения и т. д. Самый простой вариант наверное в примере выше.

Есть что-то, что мы не знаем, но узнать это мы не можем.
mendel
На сайте с 06.03.2008
Offline
183
#2

Бросьте это гиблое дело.

Анализируйте логи если так надо.

Без обид, но при таком уровне вопросов...

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

Есть один (или не один) злой паук который гуляет по сети и ищет всякие "однопиксельные метки" и прочие наколенные счетчики скармливая им поддельные HTTP_REFERER, HTTP_USER_AGENT и т.п. в надежде на инъекцию... Много чего можно поймать. Оно вам надо?

Шутку любишь над Фомой, так люби и над собой. (с) народ. Бесплатные списки читабельных(!) свободных доменов (http://burzhu.net/showthread.php?t=2976) (5L.com) Сайты, All inclusive. 5* (/ru/forum/962215)
E
На сайте с 21.09.2009
Offline
283
#3
hrach:
DirectoryIndex counter.php

Так и прописывать?

К примеру на сайта топ.майл.ру ссылка на статистику

.ru/stat?id=48844&

stat это скрипт, который обрабатывается как каталог?

---------- Добавлено 09.05.2017 в 14:23 ----------

mendel:
Без обид, но при таком уровне вопросов...

Все мы учимся. задает глупые вопросы как кажется многим. Главное это изучать, а не сидеть :)

mendel:
"однопиксельные метки"

Это что? Можно подробней, где почитать?

mendel
На сайте с 06.03.2008
Offline
183
#4
easywind:
Все мы учимся. задает глупые вопросы как кажется многим. Главное это изучать, а не сидеть

Не вопрос. Но статистика сложная вещь, и лучше с нее не начинать.

easywind:
Это что? Можно подробней, где почитать?

Дийсклеймер: Пример выдуманный, все совпадения случайны.

Захотели вы допустим на серче в некоей политической теме собрать информацию об оппонентах. Ну или в своей рекламной теме собрать статитику по пиплу - кто читал, кто писал. Сопоставить по IP кто клон конкурента а кто реальный обиженный клиент и какой именно. Решили поставить в тему свой счетчик статистики. Но как-то не заладилось. Админы доступа не дают.

И вы решили добавлять в каждое сообщение картинку. Да не простую, а с подвохом. Картинка лежит на вашем сайте. Картинка размером 1*1 пиксель. Это прозрачный png. Т.е. картинку не видно. Но картинка это не просто картинка, а пхп-скрипт, который сохраняет всю доступную информацию о том кто ее запросил (айпи, юзер-агент и т.п.) после чего выводит в браузер картинку. Ну и запрет кеширования конечно.

Раньше такие метки были широко распространены в емайлах чтобы следить когда пользователь открыл письмо (в адресе картинки указывался персональный ИД письма), но сейчас почтовики кешируют эти картинки.

Не помню как сейчас, не смотрел, но раньше невидимый однопискелы использовали и приличные сервисы статистики. Однопиксел добавляешь в самом начале страницы, а уже скрипт и счетчик в конце.

ПС: не пробуйте применять на сёрче, я специально "сказку сократил" - сразу попадетесь. ;)

H
На сайте с 21.08.2004
Offline
122
#5
easywind:
Так и прописывать?

если скрипт обработки называется counter.php то да.

easywind:

К примеру на сайта топ.майл.ру ссылка на статистику
.ru/stat?id=48844&
stat это скрипт, который обрабатывается как каталог?

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

easywind:

Все мы учимся. задает глупые вопросы как кажется многим. Главное это изучать, а не сидеть :)
Это что? Можно подробней, где почитать?

для обработки запросов часто используют картинку размером 1*1 px.

если счетчик и сайт будет на одном домене/сервере (не планируете развивать свой спайлог:)

то можно и без картинки обойтись.

П.С.

mendel прав - может лог файла достаточно будет?

E
На сайте с 21.09.2009
Offline
283
#6
mendel:
Не вопрос. Но статистика сложная вещь, и лучше с нее не начинать.

Прыгать всегда надо выше чем можеш. Иначе бананов не поеш :) надо мне это. Очень надо разобраться.

---------- Добавлено 09.05.2017 в 19:11 ----------

hrach:
mendel прав - может лог файла достаточно будет?

для обычного счетчика. мне и на ПХП скрипте хватит. Тут немного другое :) позже напишу.

H
На сайте с 21.08.2004
Offline
122
#7

Вот примитивный пример как выводить картинку и получить данные клиента



<?php


//1) получить данные клиента
//2)установить заголовки, чтобы не кешировалось


header('Content-Type: image/gif');
echo file_get_contents('spacer.gif'); // можно и в строке хранить 43 байта.
?>

аналогичной можно сделать и без картинки, обрабатывая загрузки js скрипта, если клиенты с выключенным js


<?php


//1) получить данные клиента
//2)установить заголовки, чтобы не кешировалось


header('Content-Type: text/javascript');
echo file_get_contents('script.js');
?>

можно все соединить в один скрипт:

<noscript><img src="1pximage.gif" /></noscript>

<script src="script.js"></script>
mendel
На сайте с 06.03.2008
Offline
183
#8
hrach:
echo file_get_contents('spacer.gif');

никогда так не делайте.

Используйте readfile.

В данном случае оно не существенно, ибо файл маленький и лежит рядом, но

с большим файлом можно упасть по памяти. Для вывода файла есть соответствующий инструмент - его и используйте.

Далее - хорошо что вы вывели миме, но плохо что забыли про кеширование.

Если не ошибаюсь то должно быть что-то вроде:


function showFile($filename, $mime) {
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Type: '.$mime);
readfile($filename);
}
showFile('spacer.gif','image/gif');

Если уж следить, то следить, стоит ставить и проверять куку.

И да, реферер с хттпс на хттп не передается, плюс ваш скрипт или картинка на хттпс сайте будет ломать сайт если счетчик будет не хттпс.

H
На сайте с 21.08.2004
Offline
122
#9
mendel:
никогда так не делайте.
Используйте readfile.
В данном случае оно не существенно, ибо файл маленький и лежит рядом, но
с большим файлом можно упасть по памяти. Для вывода файла есть соответствующий инструмент - его и используйте.
Далее - хорошо что вы вывели миме, но плохо что забыли про кеширование.
Если не ошибаюсь то должно быть что-то вроде:

function showFile($filename, $mime) {
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Type: '.$mime);
readfile($filename);
}
showFile('spacer.gif','image/gif');

Если уж следить, то следить, стоит ставить и проверять куку.
И да, реферер с хттпс на хттп не передается, плюс ваш скрипт или картинка на хттпс сайте будет ломать сайт если счетчик будет не хттпс.

хорошо критикуете мой скрипт, который я накидал прямо тут:)

и это не скрипт, а жалкий прототип.

и чем не угодил file_get_contents

с большим файлом можно
тут нет большого файла, всего 43 байта.
// можно и в строке хранить 43 байта.

раз печетесь о памяти то используйте fopen, постраничное чтение и вывод всего этого в выходной поток.

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

И да, реферер с хттпс на хттп не передается, плюс ваш скрипт или картинка на хттпс сайте будет ломать сайт если счетчик будет не хттпс.

а это тут причем? ломать сайт или выводить предупреждение о смешанном контенте?

откуда мне знать что хочет ТС...

зы. наверное меня с ТС спутали?

mendel
На сайте с 06.03.2008
Offline
183
#10
hrach:
раз печетесь о памяти то используйте fopen, постраничное чтение и вывод всего этого в выходной поток.

Что будет медленнее и прожорливее по памяти чем readfile.

hrach:
хорошо критикуете мой скрипт, который я накидал прямо тут
и это не скрипт, а жалкий прототип.

Так и я как-бы не в IDE писал. Тоже "прямо тут", так что оно вообще может и не заработать).

Зачем вообще код приводить если он ошибочный и неполный?

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

К чему нерабочий код?

И да, я не критикую а дополняю). Писал бы первым, про миме забыл бы)

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий