Я разрабатываю рынок плагинов Minecraft с высоким трафиком с использованием PHP, и мне нужен надежный и эффективный способ отслеживания просмотров страниц ресурсов (плагинов), размещенных на сайте. Задача состоит в том, чтобы точно отслеживать просмотры, предотвращать спам и гарантировать, что систему нелегко обойти (например, пользователи обновляют страницу или удаляют файлы cookie). Кроме того, я хочу избегать использования IP-адресов из соображений конфиденциальности. Я новичок в этом, поэтому ищу лучшие практики и предложения по реализации этого.
Подход, который я пробовал:
Я создал таблицу resources_views с помощью следующую структуру:
CREATE TABLE resource_views (
view_id INT AUTO_INCREMENT PRIMARY KEY,
ip_address CHAR(64) NOT NULL,
user_id VARCHAR(10),
resource_id VARCHAR(5) NOT NULL,
update_id VARCHAR(5) NOT NULL,
first_viewed_at DATETIME NOT NULL,
last_viewed_at DATETIME NOT NULL
);
Как это работает:
Для вошедших в систему пользователей я сохраняю как user_id, так и ip_address.
Для анонимных пользователей я сохраняю только ip_address.
Я пытаюсь предотвратить несколько просмотров от одного и того же пользователя или IP-адреса,
обновляя last_viewed_at вместо создания новую строку, если пользователь или
IP уже просматривал одно и то же обновление ресурса.
Я также добавил механизм обновления last_viewed_at только в том случае, если последний
просмотр был более 30 минут назад, чтобы предотвратить спам при обновлении страницы. .
Проблема:
Использование IP-адресов: Хранение IP-адресов не является хорошей идеей из-за
проблемы конфиденциальности (например, GDPR). Мне нужен альтернативный метод отслеживания
пользователей без нарушения конфиденциальности.
Управление сеансами: пользователи могут обойти отслеживание, удалив файлы cookie
или используя режиме инкогнито, что затрудняет сохранение точных данных о
посещениях.
Вопросы:
Что является хорошей альтернативой использованию IP адреса для отслеживания просмотров,
особенно для анонимных пользователей? Я думал об использовании идентификаторов сеансов
или уникального идентификатора пользователя, хранящегося в файле cookie, но не знаю, как
для обработки пользователями очистки файлов cookie или выхода из системы.
Как я могу запретить пользователям обходить систему путем многократного
обновления страницы или использования нескольких сеансов, чтобы избежать записи
несколько просмотров? Есть ли лучший способ справиться с этим, возможно, используя сочетание
постоянных файлов cookie и управления сеансами на стороне сервера?
Является ли мой нынешний подход хранения представлений в одной таблице с уникальная строка для каждого пользователя и обновления ресурса, что эффективно для
систем с высоким трафиком? Стоит ли мне рассмотреть возможность использования Redis или другого механизма кэширования
для обработки нагрузки?
Как управлять просмотрами ресурсов с течением времени? чтобы обеспечить точное
и масштабируемое отслеживание без перегрузки базы данных? Должен ли я
агрегировать данные (например, ежедневные просмотры) или использовать какие-либо другие стратегии оптимизации
?
Будем признательны за любые предложения и улучшения! Моя главная цель — отслеживать просмотры страниц и обеспечивать эффективность и точность системы по мере роста трафика.
Я разрабатываю рынок плагинов Minecraft с высоким трафиком с использованием PHP, и мне нужен надежный и эффективный способ отслеживания просмотров страниц ресурсов (плагинов), размещенных на сайте. Задача состоит в том, чтобы точно отслеживать просмотры, предотвращать спам и гарантировать, что систему нелегко обойти (например, пользователи обновляют страницу или удаляют файлы cookie). Кроме того, я хочу избегать использования IP-адресов из соображений конфиденциальности. Я новичок в этом, поэтому ищу лучшие практики и предложения по реализации этого. Подход, который я пробовал: Я создал таблицу resources_views с помощью следующую структуру: [code]CREATE TABLE resource_views ( view_id INT AUTO_INCREMENT PRIMARY KEY, ip_address CHAR(64) NOT NULL, user_id VARCHAR(10), resource_id VARCHAR(5) NOT NULL, update_id VARCHAR(5) NOT NULL, first_viewed_at DATETIME NOT NULL, last_viewed_at DATETIME NOT NULL ); [/code] Как это работает: [list] [*]Для вошедших в систему пользователей я сохраняю как user_id, так и ip_address. [*]Для анонимных пользователей я сохраняю только ip_address. [*]Я пытаюсь предотвратить несколько просмотров от одного и того же пользователя или IP-адреса, обновляя last_viewed_at вместо создания новую строку, если пользователь или IP уже просматривал одно и то же обновление ресурса. [*]Я также добавил механизм обновления last_viewed_at только в том случае, если последний просмотр был более 30 минут назад, чтобы предотвратить спам при обновлении страницы. . [/list] Проблема: [list] [*][b]Использование IP-адресов: Хранение IP-адресов не является хорошей идеей из-за проблемы конфиденциальности (например, GDPR). Мне нужен альтернативный метод отслеживания пользователей без нарушения конфиденциальности. [*]Управление сеансами:[/b] пользователи могут обойти отслеживание, удалив файлы cookie или используя режиме инкогнито, что затрудняет сохранение точных данных о посещениях. [/list] Вопросы: [list][*][b]Что является хорошей альтернативой использованию IP адреса для отслеживания просмотров, особенно для анонимных пользователей?[/b] Я думал об использовании идентификаторов сеансов или уникального идентификатора пользователя, хранящегося в файле cookie, но не знаю, как для обработки пользователями очистки файлов cookie или выхода из системы. [*][b]Как я могу запретить пользователям обходить систему путем многократного обновления страницы или использования нескольких сеансов, чтобы избежать записи несколько просмотров?[/b] Есть ли лучший способ справиться с этим, возможно, используя сочетание постоянных файлов cookie и управления сеансами на стороне сервера? [*][b]Является ли мой нынешний подход хранения представлений в одной таблице с уникальная строка для каждого пользователя и обновления ресурса, что эффективно для систем с высоким трафиком?[/b] Стоит ли мне рассмотреть возможность использования Redis или другого механизма кэширования для обработки нагрузки?[*][b]Как управлять просмотрами ресурсов с течением времени? чтобы обеспечить точное и масштабируемое отслеживание без перегрузки базы данных?[/b] Должен ли я агрегировать данные (например, ежедневные просмотры) или использовать какие-либо другие стратегии оптимизации ? [/list] Будем признательны за любые предложения и улучшения! Моя главная цель — отслеживать просмотры страниц и обеспечивать эффективность и точность системы по мере роста трафика.
Я разрабатываю рынок плагинов Minecraft с высоким трафиком с использованием PHP, и мне нужен надежный и эффективный способ отслеживания просмотров страниц ресурсов (плагинов), размещенных на сайте. Задача состоит в том, чтобы точно отслеживать...
Я хочу встроить электронную таблицу Google Sheets на мой сайт. Я хотел бы, чтобы пользователи могли прийти на мой сайт, и они могли видеть и взаимодействовать с электронной таблицей. Электронная таблица также содержит некоторые формулы. Например,...
Я использую такую команду для отслеживания пользовательских процессов с высоким %CPU
ps -eo pid,cmd:25,%mem,%cpu --sort=-%cpu | tail -n +2|grep dlc117|head -10
Это дает мне в реальном времени дисплей, который выглядит так:
5900...
Во многих случаях ядро выделяет физическую память для процесса. Очевидно, что речь идет об исключениях, связанных с виртуальной памятью, и системных вызовах. Я хотел бы точно отслеживать распределение этих страниц физической памяти, чтобы мы могли...