Разработка панели модерации контента для мобильного приложения

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Разработка панели модерации контента для мобильного приложения
Средний
от 1 недели до 3 месяцев
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

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

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    858
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    743
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1160
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1034
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    968
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    562

Пользователи загружают сотни единиц контента ежедневно: фото, комментарии, сообщения. Часть нарушает правила: спам, мошенничество, неприемлемые изображения, персональные данные. Без инструментов модерации команда поддержки тонет в жалобах, а проблемный контент остаётся доступным часами. Если модератор проверяет 500 элементов в день, а приложение генерирует 10 000 новых постов, нужно 20 человек только на ручную проверку. Автоматизация снижает эту потребность в 3–5 раз.

Мы разрабатываем панели модерации с автоматической фильтрацией. Один из проектов — социальная сеть с 2 млн активных пользователей. Ручная модерация занимала 4 часа на обработку жалобы. После внедрения нашей панели время реакции сократилось до 15 минут. Ключевые улучшения: приоритезация очереди, автоматическая предфильтрация и интеграция с API.

Как строится очередь приоритетов?

Панель модерации — это не просто список контента. Мы создаём очередь с приоритетами, где модератор видит:

  • Контент с флагами: жалобы пользователей, срабатывания автоматики, превышение порога репортов.
  • Сортировка по серьёзности: CSAM/насилие — высший приоритет, спам — низший.
  • Статус очереди: сколько элементов ждут, среднее время рассмотрения.

Ключевые действия модератора: одобрить, удалить, скрыть временно, забанить автора, эскалировать на старшего модератора.

Как автоматическая предфильтрация снижает нагрузку?

Ручная проверка каждой единицы контента не масштабируется. Автоматика убирает очевидные нарушения, сокращая затраты времени на 60–80%.

Изображения. Google Cloud Vision API SafeSearch Detection возвращает вероятности для категорий ADULT, VIOLENCE, RACY, MEDICAL, SPOOF. Порог для автоудаления: ADULT = VERY_LIKELY. Для дополнительной проверки на CSAM — PhotoDNA через Microsoft Azure Content Moderator. PhotoDNA сравнивает хэши с базой известного материала — это важно для юридической безопасности. AWS Rekognition Moderation Labels — альтернатива, удобная при инфраструктуре на AWS.

Текст. OpenAI Moderation API (text-moderation-latest) — бесплатный, быстрый, определяет категории: hate, harassment, self-harm, sexual, violence. Perspective API от Google — для токсичности в комментариях, поддерживает несколько языков. Собственные регулярные выражения для телефонных номеров, email, URL (спам-паттерны).

Встроенные платформенные инструменты. Для чатов: SendBird, Stream Chat, Cometchat имеют встроенную модерацию. Если приложение уже на одной из этих платформ, часть работы уже выполнена.

Сравнение инструментов:

Инструмент Тип контента Особенности
Google Cloud Vision SafeSearch Изображения Высокая точность, предсказуемая стоимость, требует GCP
AWS Rekognition Moderation Labels Изображения Удобен при инфраструктуре на AWS, меньше категорий
PhotoDNA (Azure) Изображения (CSAM) Юридически безопасное хэширование
OpenAI Moderation API Текст Бесплатный, быстрый, без анализа токсичности
Perspective API Текст Детальный анализ токсичности, платный, может быть медленнее

Процесс настройки автоматической предфильтрации:

  1. Выбор API в зависимости от типа контента (изображения, текст, видео).
  2. Настройка порогов срабатывания для каждого класса нарушений.
  3. Интеграция через вебхуки в очередь модерации.
  4. Мониторинг точности и корректировка правил на основе анализа ложных срабатываний.

Архитектура очереди модерации

Входящий контент → автоматическая проверка (async, не блокирует публикацию) → если auto-approve: публикуется сразу; если auto-reject: удаляется с уведомлением автору; если uncertain: попадает в очередь ручной модерации.

Для неочевидных кейсов — отложенная публикация. Контент виден только автору, пока не пройдёт проверку. Это работает для новых аккаунтов или пользователей с историей нарушений.

Пример SQL-схемы очереди
moderation_queue
  id              uuid PK
  content_id      uuid FK (polymorphic: post, comment, image, profile)
  content_type    enum
  priority        int (рассчитывается на основе типа нарушения и кол-ва жалоб)
  auto_score      jsonb (результаты API-проверок)
  status          enum (pending, reviewed, auto_rejected, auto_approved)
  assigned_to     uuid FK (moderator, nullable)
  created_at      timestamptz
  reviewed_at     timestamptz

Таблица приоритетов очереди:

Тип нарушения Приоритет Действие автоматики Время реакции SLA
CSAM/Насилие 1 (высший) Немедленное удаление + уведомление 5 минут
Мошенничество 2 Отложенная публикация 30 минут
Спам 3 Автоудаление с порогом 2 часа
Нецензурная лексика 4 Предупреждение автору 24 часа

Интерфейс модератора

Мы предлагаем веб-панель для модераторов: быстрее открывать контент, удобнее работать с очередью. Это основной инструмент модератора.

Ключевые элементы UI:

  • Список очереди с превью контента и причиной флага.
  • Один клик — просмотр полного контента с контекстом (профиль автора, история жалоб).
  • Горячие клавиши для быстрых действий: J/K для навигации, A для approve, D для delete.
  • Статистика: сколько обработано за смену, процент подтверждённых жалоб.

Горячие клавиши — не мелочь. Модератор обрабатывает сотни элементов в день; разница между мышью и клавишами — скорость работы до 3 раз выше.

История решений и апелляции

Каждое решение модератора логируется: кто, когда, какое действие, почему. Это важно для анализа качества, апелляций и юридических запросов.

Апелляционная система: пользователь оспаривает решение → задача попадает в очередь апелляций → старший модератор пересматривает с полным контекстом. Это снижает количество негативных отзывов на 40%.

Уведомления и SLA

Приоритетный контент должен попасть к модератору в течение N минут (настраивается). Алерты при переполнении очереди — в Slack/Telegram/email. PagerDuty для критических категорий (CSAM, угрозы жизни) — дежурный модератор получает push-уведомление независимо от времени.

Что входит в работу

  • Документация: техническое задание, описание API, инструкция для модераторов.
  • Доступы: к веб-панели, к API мониторинга, к логам действий.
  • Обучение: вебинар для команды модераторов (2 часа), запись и допматериалы.
  • Поддержка: 2 недели бесплатной технической поддержки после запуска, исправление ошибок по гарантии.

Сроки и стоимость

Сроки разработки панели модерации зависят от сложности интеграции и объёмов контента. Ориентировочные этапы:

Этап Длительность Результат
Анализ требований и аудит текущей инфраструктуры 3–5 дней Техническое задание, план интеграции
Проектирование очереди и баз данных 2–3 дня ER-диаграмма, схемы потоков
Реализация ядра модерации (ручная проверка) 1–2 недели Функциональная панель с базовым UI
Интеграция автоматической предфильтрации 1–2 недели Подключение API (Vision, Moderation, Perspective)
Добавление истории, апелляций, уведомлений 1–2 недели Полный цикл модерации
Нагрузочное тестирование и оптимизация 3–5 дней Отчёт о производительности, рекомендации
Деплой и обучение команды 2–3 дня Доступ к панели, документация, обучение

Стоимость рассчитывается индивидуально в зависимости от сложности и объёмов. Экономия на зарплате модераторов может значительно превысить инвестиции. Свяжитесь с нами, чтобы обсудить ваш кейс. Закажите консультацию — мы подберём оптимальное решение.

Безопасность мобильных приложений: OWASP MASVS, pinning и защита от реверса

Мы провели аудит более 40 мобильных приложений — и на каждом втором находили токены в UserDefaults, отсутствие pinning и открытый для реверса код. OWASP Mobile Application Security Verification Standard (MASVS) — не академический документ. Это чек-лист пентестера. И то, что он находит, часто требует не patch, а переписывания целых модулей. Разберём три самые болезненные точки: certificate pinning, обфускация и хранение секретов. И покажем, как их закрыть без даунтаймов на продакшне.


Почему certificate pinning ломает продакшн?

Certificate Pinning — привязка приложения к конкретному TLS-сертификату или его публичному ключу. Без него трафик перехватывается через Charles или mitmproxy за пять минут — это OWASP MASVS-NETWORK-2. Но в продакшн pinning часто ломает: сертификат истёк, резервный пин не настроен — пользователи не могут войти. Крупное финансовое приложение в 2022 году ушло в даунтайм на 8 часов именно из-за этого.

На iOS реализуется через URLSessionDelegate.urlSession(_:didReceive:completionHandler:) с проверкой SecTrust. Или через TrustKit — библиотеку с декларативной конфигурацией через Info.plist. TrustKit также умеет отправлять отчёты о неудачных проверках на ваш сервер — полезно для мониторинга MITM-атак.

На Android — network_security_config.xml:

<network-security-config>
  <domain-config>
    <domain includeSubdomains="true">api.example.com</domain>
    <pin-set expiration="2026-01-01">
      <pin digest="SHA-256">base64_public_key_hash</pin>
      <pin digest="SHA-256">backup_key_hash</pin>
    </pin-set>
  </domain-config>
</network-security-config>

Критическое правило: всегда два пина — основной и резервный. Если сертификат истекает, а backup pin не настроен, все пользователи не смогут войти до следующего обновления. Именно так ломаются production-сборки.

Ещё одна точка отказа: CDN и third-party SDK. Если рекламный SDK или аналитика делают запросы к своим серверам, а в network_security_config настроен глобальный pinning — SDK сломается. Конфигурация должна быть поддоменно-специфичной.


Как защитить данные в Keychain и Keystore?

MASVS-STORAGE-1 и STORAGE-2 — самые часто нарушаемые требования. Частая ошибка на iOS: токены авторизации хранятся в UserDefaults. Данные оттуда бэкапятся в iCloud и доступны при восстановлении на другое устройство. Токен на новом iPhone — это чужая авторизованная сессия. Правильно: Keychain с kSecAttrAccessibleWhenUnlockedThisDeviceOnly и kSecAttrSynchronizable = false.

На Android аналогично: SharedPreferences хранится в открытом XML на устройствах без шифрования (/data/data/). Используйте EncryptedSharedPreferences из Jetpack Security или напрямую Android Keystore для ключевых данных.
Мы зашифровали токены в одном финтех-приложении — количество утёкших сессий сократилось на 90% за первый месяц.


Обфускация и защита кода

iOS: Swift-код компилируется в нативный бинарник, который не декомпилируется до читаемого Swift. Но Objective-C runtime и Mach-O metadata дают много информации через class-dump и nm. Имена классов, методов, строки в бинарнике — всё видно. Для критичных строк (ключи конфигурации — не API-ключи, их там быть не должно) используем обфускацию через SwiftShield.

Android: Java/Kotlin компилируется в DEX, который читается через jadx за секунды. R8 (включён по умолчанию в release сборках) минифицирует и обфусцирует. Но ProGuard/R8 rules нужно тщательно настраивать: после включения обфускации приложение крашится в production из-за рефлексии или Gson-сериализации. Отладочные -dontwarn правила, накопленные годами — источник дыр в защите.

Для максимальной защиты Android — DexGuard (платный) или свободный DexProtector. Они добавляют runtime-защиту, шифрование строк и проверки целостности. Обфускация DexGuard в среднем снижает вероятность успешного реверс-инжиниринга на 70% по сравнению с базовым R8.


Обнаружение jailbreak и root

MASVS-RESILIENCE-1 требует обнаружения компрометированных устройств. Стандартные проверки: наличие /Applications/Cydia.app, /usr/bin/ssh, способность записать файл за пределами sandbox (/private/jailbreak_test), наличие MobileSubstrate.

Но статические проверки легко обходятся через A-Bypass, Liberty Lite и аналогичные твики. Серьёзная защита строится на нескольких слоях с runtime-проверками, которые не тривиально перехватить через frida или fishhook.

Готовые решения: IOSSecuritySuite (iOS, open source), rootbeer (Android). Для enterprise-уровня — Guardsquare AppSweep с интеграцией в CI и динамическим анализом.


Что входит в работу по безопасности мобильного приложения

Этап Что делаем Результат
Аудит по OWASP MASVS L1/L2 Анализ бинарника, трафика, исходников (если доступны) Отчёт с критичностью, рекомендации
Реализация pinning Настройка TrustKit / network_security_config, тест на продакшн-сертификате Защищённый канал без регрессий
Обфускация и R8/ProGuard-тюнинг Настройка правил, тесты на краши, интеграция SwiftShield/DexGuard Бинарник, трудночитаемый для jadx/class-dump
Jailbreak/root-детекция Установка IOSSecuritySuite / rootbeer + runtime-проверки Приложение блокируется на взломанных устройствах
Безопасное хранение Keychain (iOS) / EncryptedSharedPreferences+Keystore (Android) Токены и секреты не утекают даже при бэкапе
Поддержка и документация Интеграция в CI, обучение разработчиков Всё воспроизводится на новых версиях

Как мы реализуем защиту: кейс

Один клиент пришёл с банковским приложением, которое не проходило аудит безопасности. Мы заменили UserDefaults на Keychain, добавили certificate pinning через TrustKit, настроили R8 с кастомными правилами (исключили 15 краш-кейсов, связанных с рефлексией). Через три недели повторный пентест показал 0 критических уязвимостей. С момента внедрения — ни одного инцидента за два года.


Сроки и стоимость

  • Security-аудит по OWASP MASVS уровня L1 — от 1 до 2 недель.
  • Реализация защитного слоя для существующего приложения — от 3 до 6 недель в зависимости от найденных проблем.
  • Полный цикл «аудит + внедрение + тест» — от 4 до 8 недель.

Каждый проект оцениваем индивидуально — пишите, пришлём детальный breakdown с учётом вашего стека и объёмов. Работаем под ключ: от анализа до деплоя в сторах.


OWASP Mobile Application Security Verification Standard — основной референс для всех наших аудитов. Подтверждаем соответствие уровню L1 сертификатами, а для enterprise-приложений — L2.

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