我如何获得我的php libcurl脚本的wp nonce值

时间:2009-09-07 00:09:04

标签: php wordpress curl libcurl wpmu

我想在我的wpmu安装上为自己自动执行一些管理任务。例如,我正在尝试编写用于登录和添加新博客的php curl脚本。所以我已经通过curl登录了,现在我想发布wpmu-blogs.php中的表单,但它隐藏了wp nonce字段。如何将此值变为变量?我检查了源,但有多个wp nonce隐藏字段。我假设不同形式的不同任务有不同的nonce值。如何获得我需要的 - 添加新博客?

2 个答案:

答案 0 :(得分:3)

nonce的意思是protect against a cross site forgery attack。因此,将定期生成新的nonce值。如果nonce是可预测的,那就不会有效。

要使用curl发布到启用nonce的表单,您需要

  1. 启用所有Cookie处理选项(将Cookie保存到Cookie jar,并在保存的Cookie jar中发送Cookie)

  2. 向包含表单的页面发出请求

  3. 使用正则表达式或HTML / XHTML解析库,提取所需的随机数值

  4. 掌握该值后,发布到您想要的页面,发送随机数

  5. 这种编程可能很乏味。您实际上是在尝试模拟Web浏览器。这是可行的,但你可能想要考虑

    1. 调查Wordpress XML-RPC API。这是你尝试使用CURL自动完成的事情的支持方式,并且一旦你攀登学习曲线,它将更直接。

    2. 还有AtomPub API。 AtomPub在某种程度上是尝试提出一种标准方式来对网络日志和个人发布网站执行常见操作。优点是,在一般系统(Wordpress)中编写的脚本可以在另一个系统(MovableType)上运行。缺点是AtomPub功能往往落后于/不同于每个引擎的自定义API支持的功能。

    3. 最后,如果您不想使用任何API,您可能需要尝试Selenium。 Selenium IDE将允许您编写Firefox脚本并自动处理nonce,因为您实际上是使用浏览器访问每个页面。

答案 1 :(得分:0)

您也可以使用greasemonkey为您的Firefox编写脚本。

此插件允许自定义网页并使用javascript执行某些操作。