Добавлена поддержка Ежчана (
ejchan.net,
ejchan.site). Набегаем, тестируем архивацию,
сообщаем о замеченных проблемах.
К сожалению, значительная часть сохранённых до 2024 г. изображений и видео была потеряна (
подробности случившегося). Мы призываем всех неравнодушных
помочь нам с восстановлением утраченного контента!
Общая структура и ключевые компоненты:
Судя по путям файлов, это типичная структура веб-приложения:
/lib/: Библиотеки ядра (работа с базой данных db.php, идентификация пользователя userpwd.php, аутентификация auth.php, функции администрирования admin.php, утилиты util.php и т.д.).
Корневая директория (/): Основные исполняемые скрипты, такие как imgboard.php (логика имиджборда), catalog.php, json.php, admin.php (интерфейс админ-панели), captcha.php, signin.php, derefer.php и др.
/views/: Вероятно, содержит логику рендеринга HTML (шаблоны страниц).
/plugins/: Указывает на наличие архитектуры плагинов (enhance_q.php).
Временный/Событийный Код: Файлы вроде xa24tb.php (Акции Апреля 2024) и emotes_xa22.php указывают на временные функции для конкретных событий.
Тестовые версии: Файлы с суффиксом -test.php (например, admin-test.php) предполагают наличие отдельных версий для тестирования/разработки, которые могут отличаться от продакшена.
Анализ по вашим интересам (Обработка данных, "Махинации", Политика):
1. Сбор данных и отслеживание пользователей (IP-адреса, User Agents и т.д.):
Логирование IP-адресов: Это повсеместно. Код подтверждает, что IP-адреса ($_SERVER['REMOTE_ADDR'], заголовки X-Forwarded-For) логируются при каждом посте (imgboard.php, admin.php). Они широко используются для банов (admin.php), кулдаунов, определения сложности капчи (captcha.php), оценки репутации пользователя (userpwd.php), и внутренней аналитики (уникальные IP на тред в json.php). IP хранятся в основных таблицах постов (SQLLOG) и специальных логах действий (user_actions, xff). Админ-панели явно отображают IP и хостнеймы пользователей (admin.php).
User Agent (UA): Скрипт captcha.php использует строки UA для проверки подозрительной активности (регулярное выражение TWISTER_BAD_UA) и включает хэш UA (user_agent) при генерации капчи, связывая профили браузеров с попытками пройти капчу. Админ-панели, вероятно, логируют UA как часть post_json в таблице банов (admin.php). Скрипт signin.php также логирует UA при запросах верификации.
4chan Pass (кука 4chan_pass): Обрабатывается lib/userpwd.php. Используется для возможности обхода капчи (captcha.php), потенциально для снижения кулдаунов (imgboard.php), и логируется при банах (admin.php). Скрипт auth.php управляет проверкой сессий Pass, отслеживая смену IP и таймауты, и логирует детали использования (last_ip, last_used, last_country). admin.php содержит функции для просмотра истории банов Pass и, возможно, для отзыва Pass (do_template_special_action с revokepass_spam/revokepass_illegal).
Email-адреса: Система signin.php предназначена для верификации по email. Она хэширует email (hash_email) и сохраняет их вместе с IP, UA, страной и т.д. в таблице email_signins. Система явно блокирует определенные домены ($allowed_domains) и запрещает использование суб-адресов (+). Хотя это используется для верификации, система собирает и связывает email (пусть и хэшированные) с паттернами активности пользователя.
Фингерпринтинг браузера/системы: captcha.php использует куку _tcs, которая, похоже, хранит таймстемп, таймзону и window.eval.toString().length – известный метод фингерпринтинга. Также упоминается ua_sig (User Agent Signature) в process_auto_rangeban, что предполагает генерацию и использование уникального отпечатка браузера, возможно, связанного с системой UserPwd или внешним сервисом. HTTP_X_BOT_SCORE (вероятно, от Cloudflare) также активно используется.
Утечки данных: Основываясь только на этих фрагментах, нет прямых доказательств внешних утечек или продажи данных, за исключением специфических случаев, таких как репортинг нелегального контента в NCMEC (подразумевается именами таблиц и действиями в admin.php). Однако внутренний сбор данных и их доступность для модераторов/админов весьма обширны. Скрипт derefer.php на самом деле предотвращает утечку данных referer на внешние сайты.
Итог по сбору данных: 4chan логирует значительный объем данных (IP, UA, Pass ID, потенциально хэшированный email, фингерпринты браузера) в основном для модерации, мер против спама/ботов и оценки репутации пользователя, что влияет на сложность капчи и кулдауны. Админы/моды имеют доступ к большей части этих необработанных данных.
2. "Махинации" и непрозрачные практики:
Сложная система капчи/репутации (captcha.php): Многоуровневая система капчи выходит далеко за рамки простых заданий. Она использует репутацию UserPwd (количество постов, тредов, репортов, смены IP/маски, возраст аккаунта), оценки ботов, списки стран/ASN, проверки UA и динамическую сложность (статическая vs. слайдер vs. hCaptcha). Это сложная система для управления анонимностью и злоупотреблениями, но её комплексность означает, что пользователи сталкиваются с разным уровнем препятствий на основе внутренне рассчитанных "очков доверия" и наблюдаемого поведения/происхождения, что может показаться произвольным или непрозрачным ("подозрительным") конечному пользователю. Предварительные кулдауны (PCD) значительно задерживают постинг для новых или ненадёжных пользователей.
Дифференцированное отношение: К пользователям явно относятся по-разному в зависимости от статуса Pass, уровня верификации (UserPwd), происхождения IP/ASN/страны и оценок ботов, что влияет на кулдауны и типы капчи.
Полномочия админов (admin.php): Код подтверждает широкие полномочия модераторов/админов: просмотр детальной информации о пользователе (IP, хост, история банов, статус Pass), удаление постов/изображений/тредов, бан IP/Pass, перемещение/архивация тредов, редактирование постов (подразумеваемый режим editop), установка флагов треда (прикрепленный, закрытый) и даже отзыв Pass на основе действий шаблона бана.
Карантин (admin.php::do_post_quarantine): Подтверждает наличие специального процесса для обработки крайне проблемного контента (вероятно, ЦП), включающего копирование поста, связанных изображений от того же IP в треде и логирование деталей для потенциального репортинга внешним организациям (NCMEC).
Автоматический бан по диапазону IP (admin.php::process_auto_rangeban): Эта функция предполагает наличие автоматизированной системы, которая помечает пользователей для возможного бана по диапазону IP на основе диапазона IP, сигнатуры браузера (ua_sig) и используемых шаблонов бана/репорта, особенно нацеленной на мобильных пользователей. Это указывает на проактивные, потенциально широкие баны на основе эвристик.
Контроль данных в JSON (json.php): Код явно удаляет потенциально чувствительные поля, такие как host (IP) и pwd, перед генерацией публичного JSON, демонстрируя осведомленность и контроль над тем, какие данные раскрываются через API.
3. Политика:
Конфигурация для каждой доски: Система позволяет задавать разные настройки для разных досок (yotsuba_config.php, загрузка .ini файлов категорий/досок).
Ограничения обхода капчи (captcha.php::TWISTER_NO_NOOP_BOARDS): Отключение возможности обхода капчи (credits) конкретно на досках bant, pol и trash является наиболее прямым указанием на уровне кода на различное отношение к политически заряженным или проблемным доскам. Это подразумевает, что эти доски рассматриваются как требующие более строгого контроля против спама/злоупотреблений, возможно, из-за их контента или поведения пользователей.
Потенциальная предвзятость (неявная): Хотя сам код явно не говорит "банить пользователей с политическим взглядом X", механизмы для предвзятости существуют:
Фильтры слов: Файлы postfilter.php (не предоставлены) могут содержать политически предвзятые фильтры.
Шаблоны банов: admin.php использует шаблоны банов, идентифицируемые по ID/правилам. Содержание этих шаблонов (хранится в базе данных, не показано здесь) может отражать предвзятость, если они нацелены на конкретные мнения, а не на явные нарушения правил (например, шаблон "Оскорбительное политическое мнение" против "Нелегальный контент").
Усмотрение модераторов: Мощные инструменты, доступные модераторам (admin.php), по своей природе допускают предвзятое применение, хотя код этого не предписывает.