Плагин alx ip statistic / Статистика по IP

Нехитрый, но полезный плагин сохраняет в логе ip-адреса, время, идентификаторы браузеров, логины и пароли попыток авторизаций на странице входа, а также просмотр любых публикаций в которой использован шорткод . Именно с этим плагином обещание «я тебя по ip вычислю!» приближается к реальности…

///

Использование

Настройки

Настройка работы плагина выполняется на штатной странице …/wp-admin/admin.php?page=ip-statistic-settings

  • Количество отображаемых записей
  • Максимум дней хранения записей
  • Максимум записей на хранении в таблице
  • Включить на странице Авторизации
  • Включить при успешной Авторизации
  • Включить при ошибки Авторизации
  • Сохранять пароль при ошибках авторизации
  • Включить существующего пользователя

Плагин сохраняет свои настройки в таблице wp_options, способ хранения описан ниже в разделе Детали.

Использование

Любая публикация на сайте логируется плагином, если в ее содержании размещен шорткод , при этом шорткод в браузере никак отображаться не будет.

Статистика

Логи собранные плагином можно просмотреть в штатном окне …/wp-admin/admin.php?page=ip-statistic/ip-statics.php

Подробности работы плагина

Плагин создает в базе данных WordPress единственную таблицу wp_ip_stati для логирования всех своих событий.

Таблица wp_ip_stati

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

NAME TYPE LENGTH NOT NULL COMMENT
id mediumint 9 + Ключевой идентификатор события (автоматически инкрементируемый порядковый номер)
type varchar 200 + Тип события. Содержание типа описано отдельно ниже
time timestamp 0 + Дата и время события
real_ip varchar 200 + Реальный ip-адрес клиента
получается из первого значения в каскаде IP адресов
($_SERVER[‘HTTP_X_FORWARDED_FOR’])
или из параметра для cloudflare-соединения
PHP:($_SERVER[‘HTTP_CF_CONNECTING_IP’])
remote_ip varchar 200 + В случае переадресации содержит адрес страницы, которая привела браузер пользователя на эту страницу. Этот заголовок устанавливается веб-браузером пользователя. Не все браузеры устанавливают его и некоторые в качестве дополнительной возможности позволяют изменять содержимое заголовка HTTP_REFERER. Одним словом, в самом деле ему нельзя доверять.
PHP:($_SERVER[‘HTTP_REFERER’])
ip varchar 200 + IP-адрес, с которого пользователь просматривает текущую страницу.
PHP:($_SERVER[‘REMOTE_ADDR’])
agent varchar 255 + Содержимое заголовка User-Agent из текущего запроса. Эта строка содержит обозначение браузера, которым клиент запросил данную страницу.
PHP:($_SERVER[‘HTTP_USER_AGENT’])
user varchar 100 Логин
paw varchar 100 Пароль
Поле type

Строковое значение в поле type таблицы wp_ip_stati определяет тип логированного события

type ОПИСАНИЕ
er_auth Ошибка авторизации (0.01%). Для этого события в полях user и paw сохраняется логин и пароль неудачной попытки авторизоваться.

!!!
remote_ip
…/wp-login.php — очень часто 52%
…//wp-login.php — очень часто 29%
0 — часто 13%
…/wp-login.php?redirect_to=https%3A%2F%2Freks.biz%2F%3Fp%3D… — часто 5%

onlogin Успешная авторизация (0.02%). Для этого события поля user и paw содержат Null.
errlogin Ошибка авторизации (75%). Для этого события поля user и paw содержат Null.

!!!
remote_ip
0 чаще всего 80%
…/xmlrpc.php — очень часто 10%
…//wp-login.php — очень часто 9%
…/wp-login.php — редко 1%
http://www.google.com.hk — очень редко 0.05%
…/wp-login.php?redirect_to=https%3A%2F%2Freks.biz%2F%3Fp%3D… — очень редко 0.02%
…www…/wp-login.php — очень очень редко

showlogin Отображение окна авторизации (24%). Для этого события поля user и paw содержат Null.
<ID> Строковое десятичное представление идентификатора публикации wp_posts.ID . Для этого события полная ссылка на публикацию логируется в поле remote_ip, а поля user и paw содержат Null.

0 — очень часто (94%)
<id> — часто (6%)

///

Настройки плагина в wp_options

Плагин сохраняет свои настройки в отдельных записях таблицы wp_options

option_id option_name option_value autoload COMMENT
<id> ip_statistic_ver <ver> ‘yes’ Версия установленного плагина
<id> ip_statistic_showcounts <int> ‘no’ Количество записей отображаемых на странице Статистика
<id> ip_statistic_savedays <int> ‘no’ Число дней сохранения собранной статистики
<id> ip_statistic_saverows <int> ‘no’ Лимит числа хранимых записей
<id> ip_statistic_onlogin {‘0′,’1’} ‘no’ Включить статистику на странице Авторизации
<id> ip_statistic_errlogin {‘0′,’1’} ‘no’ Включить при ошибке Авторизации
<id> ip_statistic_showlogin {‘0′,’1’} ‘no’ Включить при успешной Авторизации
<id> ip_statistic_sav_pas_errlogin {‘0′,’1’} ‘no’ Сохранять пароль при ошибках авторизации
<id> ip_statistic_save_pass_ex {‘0′,’1’} ‘no’ Включить существующего пользователя

Прямой доступ к таблице

Содержимое таблицы событий wp_ip_stati можно получить прямым доступом к MySQL посредством sql-выражения.

Примеры с комментариями

Логины и пароли

События er_auth логируют значения логина и пароля неудачной попытки авторизации в полях user и paw, при этом не только уличаются злонамеренные попытки, но и засвечиваются собственные ошибки. Анализ серии сходных паролей может привести к разгадыванию значения пароля.

Несовпадение real_ip и ip (select * from wp_ip_stati where real_ip<>ip)

Все события несовпадения real_ip и ip имеют тип errlogin, при этом remote_ip всегда http://www.google.com.hk, а сами значения real_ip и ip непустые (значения я не анализировал).

Примеры использования

Запрос текущих настроек плагина

Запрос событий текущего дня в хронологическом порядке

Запрос посуточного отчета активности по реальным IP

Запрос общей активности по реальным IP в хронологическом порядке

Источники

  • $_SERVER — Информация о сервере и среде исполнения //php.ru/manual
  • Правильное использование HTTP_X_FORWARDED_FOR //riptutorial.com

Добавить комментарий