написать впереди
Недавно я прочитал несколько постов об автоматической публикации статей Nuggets. Все это делает серверная часть, напрямую вызывающая интерфейс для публикации статей и координирующаяся с временными задачами. Но недостатком является то, что он обходит этапы входа в Nuggets. Если вручную получить файл cookie страницы, а затем передать файл cookie программе, функция автоматической публикации будет завершена. Итак, сегодня, с технической точки зрения, давайте рассмотрим, как реализован вход в Nuggets.
текст начинается
Прежде всего указано, что здесь обсуждается только техническая реализация.
1. Контекст вопроса
В этом действии регистрации статьи может возникнуть ситуация, когда статья написана и есть черновик, но статью забыли опубликовать, что приводит к нарушению обновления. Вот я и придумал, есть ли функция автоматической публикации статей, чтобы помочь нам выполнить часть автоматизированной работы по решению проблемы отсутствия публикации.
Итак, давайте начнем с интерфейса публикации статей, давайте сначала рассмотрим логику публикации статей Nuggets;
- А. После создания новой статьи она будет сохранена как черновик, и будет создан уникальный идентификатор.
- б) Если редактор статьи не публикует ее, она остается в черновике, а идентификатор статьи остается неизменным.
- в) После заполнения необходимых тегов при публикации статьи ее можно успешно опубликовать.
- г. После того, как статья будет опубликована, она станет читаемой после рецензирования, и ею можно будет поделиться с другими.
Ниже приведены конкретные параметры и адреса интерфейса публикации:
- адрес интерфейса:API.nuggets.capable/content_API…
- Метод запроса:POST
- Параметры запроса:
| параметр | Типы | иллюстрировать |
|---|---|---|
| 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. Как войти
Цель: Реализовать автоматический вход в систему, когда имя пользователя и пароль известны.
- Вход с мобильным проверочным кодом
- Логин пароль от учетной записи
Мобильный вход с кодом подтверждения должен каждый раз динамически получать код подтверждения, поэтому он здесь не рассматривается; сторонний вход по существу требует входа в другие учетные записи, что здесь не рассматривается; поэтому нам нужно только проверить пароль учетной записи Nuggets для входа in; Так что давайте изучать эту вещь.
После обычного ввода имени пользователя и пароля появится скользящий код подтверждения, для прохождения которого требуется ручная проверка.
Похоже, здесь проблема зашла в тупик. Моя цель — войти в систему автоматически, но я не могу избежать вмешательства человека, рассмотрев несколько способов.
3. Копайте глубже
Подумав о сути входа в систему, это процесс POST-запроса, то есть его можно завершить, отправив запрос. Так что продолжайте следовать этой идее и продолжайте просматривать интерфейс входа в систему.На следующем рисунке показан конкретный интерфейс при входе в систему.
Как показано на рисунке, запрошенный интерфейс и запрошенные параметры имеют и то, и другое, но параметры, очевидно, являются зашифрованными данными.
После более глубокого понимания здесь мы узнаем общий процесс входа в систему.Здесь нет глубокого понимания, но результаты суммированы на основе нашего собственного опыта.
- Проведите процесс проверки
- Процесс входа в систему, этот процесс шифрования имени пользователя и пароля
Итак, чтобы успешно войти через скрипт, нужно сделать две вещи:
- Построение параметров запроса скользящего кода подтверждения
- Построение параметра запроса интерфейса входа
Но попробуйте запросить внешний код самородков, хотя вы можете найти некоторые подсказки. Но в итоге пугает количество front-end кода и динамически загружаемого JS, да и потраченное время может быть не пропорционально выигрышу. Умер в возрасте 28 лет.
PS: Представленные здесь идеи взлома осуществимы, и я надеюсь, что после того, как способные маленькие партнеры изучат их, они смогут обсудить их вместе.
Суммировать
Логин Nuggets имеет еще две важные функции:
- Определите личность оператора как реального пользователя, сдвинув проверочный код.
- Внешнее шифрование и внутреннее дешифрование используются, чтобы избежать передачи информации о пользователе открытым текстом во время процесса входа в систему.
Комбинация этих двух способов реализует относительно безопасный метод входа в систему, который разрушает мечты большинства программистов о прямом входе в Nuggets через программу.
Так что если вы хотите добиться функции автоматического выпуска, вам нужно найти другой способ достижения цели.