Как я могу получить одноразовое значение wp для моего сценария php libcurl

Я хотел бы автоматизировать некоторые административные задачи для себя при установке wpmu. Например, я пытаюсь написать скрипт php curl для входа в систему и добавления нового блога. Итак, я уже вошел в систему с помощью curl, и теперь я хочу опубликовать форму, которая находится в wpmu-blogs.php, но в ней есть скрытое поле wp nonce. Как мне получить это значение в переменную? Я проверил источник, но есть более одного скрытого поля. Я предполагаю, что существуют разные значения nonce для разных задач в разных формах. Как получить тот, который мне нужен - для добавления нового блога?

2 ответа

Смысл одноразового использования заключается в защите от атаки подделки сайта. Из-за этого новое значение nonce будет генерироваться на регулярной основе. Если бы одноразовый номер был предсказуем, он не был бы эффективным.

Чтобы опубликовать в одноразовой форме с помощью curl, вам нужно

  1. Включите все параметры обработки файлов cookie (как сохранение файлов cookie в банке файлов cookie, так и отправка файлов cookie в сохраненный файл cookie).

  2. Сделайте запрос на страницу, которая содержит вашу форму

  3. Используя регулярные выражения или библиотеку для разбора HTML/XHTML, вытащите нужное значение nonce

  4. Имея это значение, отправьте сообщение на нужную страницу, отправив одноразовый номер

Этот вид программирования может быть утомительным. По сути, вы пытаетесь эмулировать веб-браузер. Это выполнимо, но вы можете рассмотреть

  1. Рассматривая Wordpress XML-RPC API. Это поддерживаемый способ делать то, что вы пытаетесь автоматизировать с помощью CURL, и он станет намного более простым, когда вы поднимитесь по кривой обучения.

  2. Также есть API AtomPub. Частично AtomPub - это попытка придумать стандартный способ выполнения общих действий для блогов и личных издательских сайтов. Преимущество в том, что сценарии, написанные для одной системы (Wordpress), будут работать на другой системе (MovableType). Недостатком является то, что функции AtomPub, как правило, отстают / отличаются от функций, поддерживаемых в пользовательских API каждого движка.

  3. Наконец, если вы не склонны использовать API, вы можете попробовать Selenium. Selenium IDE позволит вам создавать скрипты для Firefox и автоматически обрабатывать одноразовые номера, поскольку вы фактически используете браузер для посещения каждой страницы.

Вы также можете использовать greasemonkey для написания сценария вашего firefox.

Этот аддон позволяет настраивать веб-страницу и выполнять некоторые действия с использованием JavaScript.

Другие вопросы по тегам