Мысли, вызванные входом в Nuggets

задняя часть

написать впереди

Недавно я прочитал несколько постов об автоматической публикации статей Nuggets. Все это делает серверная часть, напрямую вызывающая интерфейс для публикации статей и координирующаяся с временными задачами. Но недостатком является то, что он обходит этапы входа в Nuggets. Если вручную получить файл cookie страницы, а затем передать файл cookie программе, функция автоматической публикации будет завершена. Итак, сегодня, с технической точки зрения, давайте рассмотрим, как реализован вход в Nuggets.

текст начинается

Прежде всего указано, что здесь обсуждается только техническая реализация.

1. Контекст вопроса

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

Итак, давайте начнем с интерфейса публикации статей, давайте сначала рассмотрим логику публикации статей Nuggets;

  • А. После создания новой статьи она будет сохранена как черновик, и будет создан уникальный идентификатор.
  • б) Если редактор статьи не публикует ее, она остается в черновике, а идентификатор статьи остается неизменным.
  • в) После заполнения необходимых тегов при публикации статьи ее можно успешно опубликовать.
  • г. После того, как статья будет опубликована, она станет читаемой после рецензирования, и ею можно будет поделиться с другими.

Ниже приведены конкретные параметры и адреса интерфейса публикации:

параметр Типы иллюстрировать
draft_id нить Идентификатор статьи
sync_to_org логический Синхронизировать ли
column_ids список неизвестный

Python легко справляется с такими вещами, примерно так:

# 代码为演示代码
body = {
    "draft_id": "123456",
    "sync_to_org": False,
    "column_ids": []
}
requests.post(self.publish_url, body=body)

Очевидно, что это не сработает. Потому что в коде нет операции входа в систему. Давайте взглянем на реализацию входа в Nuggets.

2. Как войти

Цель: Реализовать автоматический вход в систему, когда имя пользователя и пароль известны.

  • Вход с мобильным проверочным кодом

image.png

  • Логин пароль от учетной записи

image.png

Мобильный вход с кодом подтверждения должен каждый раз динамически получать код подтверждения, поэтому он здесь не рассматривается; сторонний вход по существу требует входа в другие учетные записи, что здесь не рассматривается; поэтому нам нужно только проверить пароль учетной записи Nuggets для входа in; Так что давайте изучать эту вещь.

После обычного ввода имени пользователя и пароля появится скользящий код подтверждения, для прохождения которого требуется ручная проверка.

image.png

Похоже, здесь проблема зашла в тупик. Моя цель — войти в систему автоматически, но я не могу избежать вмешательства человека, рассмотрев несколько способов.

3. Копайте глубже

Подумав о сути входа в систему, это процесс POST-запроса, то есть его можно завершить, отправив запрос. Так что продолжайте следовать этой идее и продолжайте просматривать интерфейс входа в систему.На следующем рисунке показан конкретный интерфейс при входе в систему.

image.png

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

После более глубокого понимания здесь мы узнаем общий процесс входа в систему.Здесь нет глубокого понимания, но результаты суммированы на основе нашего собственного опыта.

  • Проведите процесс проверки

image.png

  • Процесс входа в систему, этот процесс шифрования имени пользователя и пароля

Итак, чтобы успешно войти через скрипт, нужно сделать две вещи:

  1. Построение параметров запроса скользящего кода подтверждения
  2. Построение параметра запроса интерфейса входа

Но попробуйте запросить внешний код самородков, хотя вы можете найти некоторые подсказки. Но в итоге пугает количество front-end кода и динамически загружаемого JS, да и потраченное время может быть не пропорционально выигрышу. Умер в возрасте 28 лет.

PS: Представленные здесь идеи взлома осуществимы, и я надеюсь, что после того, как способные маленькие партнеры изучат их, они смогут обсудить их вместе.

Суммировать

Логин Nuggets имеет еще две важные функции:

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

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

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