Таблица oc_affiliate_login
Таблица oc_affiliate_login служит системой безопасности для партнерской программы OpenCart. Она регистрирует каждую неудачную попытку входа в партнерский раздел, что позволяет администратору отслеживать подозрительную активность и автоматически блокировать IP-адреса после превышения лимита попыток.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
affiliate_login_id |
int |
Уникальный идентификатор записи о попытке входа. Первичный ключ таблицы с автоинкрементом. |
email |
varchar(96) |
Email-адрес, который был использован для попытки входа в партнерский раздел. |
ip |
varchar(40) |
IP-адрес, с которого была совершена попытка входа. Хранится в формате IPv4 или IPv6. |
total |
int |
Счетчик количества неудачных попыток входа с данного IP-адреса для указанного email. |
date_added |
datetime |
Дата и время добавления записи (первой неудачной попытки). |
date_modified |
datetime |
Дата и время последнего обновления записи (последней неудачной попытки с этой связки IP и email). |
Как это работает
Когда партнер (affiliate) пытается войти в свой аккаунт через форму авторизации (/index.php?route=affiliate/login) и вводит неверные данные, система проверяет наличие записи в таблице oc_affiliate_login для комбинации введенного email и IP-адреса пользователя.
Если запись не найдена, она создается. Поле total устанавливается в 1. Если запись уже существует, значение в поле total увеличивается на 1, а date_modified обновляется на текущее время.
Система безопасности OpenCart проверяет значение total. Если количество попыток превышает лимит, установленный в настройках (config_affiliate_lockout_total в таблице oc_setting), то данный IP-адрес блокируется для дальнейших попыток входа в партнерский раздел на определенное время.
Успешный вход сбрасывает счетчик попыток для данной комбинации email и IP. Соответствующая запись удаляется из таблицы oc_affiliate_login.
Пример SQL-запроса
Посмотреть все неудачные попытки входа за последние 24 часа можно следующим запросом:
SELECT *
FROM oc_affiliate_login
WHERE date_modified > DATE_SUB(NOW(), INTERVAL 1 DAY)
ORDER BY date_modified DESC;
Найти IP-адреса с наибольшим количеством попыток взлома:
SELECT ip, email, total, date_modified
FROM oc_affiliate_login
ORDER BY total DESC
LIMIT 10;
Смотрите также
-
таблицу
oc_affiliate,
которая хранит основную информацию о партнерах -
таблицу
oc_customer_login,
которая выполняет аналогичную функцию для клиентского раздела -
таблицу
oc_setting,
где хранятся настройки лимитов попыток входа