2

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

4

2 回答 2

4

nonce 的重点是防止跨站点伪造攻击。因此,将定期生成一个新的 nonce 值。如果随机数是可预测的,它就不会有效。

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

  1. 打开所有 cookie 处理选项(将 cookie 保存到 cookie 罐中,以及在保存的 cookie 罐中发送 cookie)

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

  3. 使用正则表达式或 HTML/XHTML 解析库,提取你想要的 nonce 值

  4. 有了这个值,发布到你想要的页面,发送随机数

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

  1. 查看Wordpress XML-RPC API。这是您尝试使用 CURL 实现自动化的一种受支持的方式,一旦您爬上学习曲线,它就会变得更加直接。

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

  3. 最后,如果您不喜欢使用这两种 API,您可能想尝试一下Selenium。Selenium IDE 将允许您编写 Firefox 脚本并自动处理随机数,因为您实际上是在使用浏览器访问每个页面。

于 2009-09-07T00:55:57.100 回答
0

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

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

于 2009-09-07T01:02:28.807 回答