1

我正在使用这种形式的自动填充:http: //getpocket.com/save

我使用的是它而不是 API,以便当用户在与我的网站相同的浏览器上登录到 Pocket 时它可以工作。

但是,然后必须单击“保存”并不是一个好的用户体验,那么我该如何“自动化”呢?

我不会显示我的代码,因为它本质上只是生成表单的链接:

http://getpocket.com/save/?title=thetitle&url=encodedurl

它可以很好地填充表单,但是我该如何提交?我试过追加&save&submit然后每一个都是=True徒劳的。是保存按钮没有name=字段的问题,这是用来挂钩标题和 URL 字段的吗?

编辑:为了清楚起见,我没有任何恶意,只是为了保存文章以供稍后单击按钮阅读。

如果我有时间,我会看看 API。

4

1 回答 1

2

幸运的是,这是不可能的(在 Pocket 和大多数网站上),因为跨站点伪造请求保护可以防止您正在尝试做的事情。

在表单中设置了一个令牌,并与用户在口袋(或任何其他使用 csfr 令牌保护的站点)上的会话信息一起,它需要形成某种秘密哈希。提交“保存”表单时,将检查这些字符串的组合,通常会设置新的字符串。因为(实际上)您不可能从表单本身预测令牌并且没有真正的方法来操纵会话哈希,所以您不走运。我们都为此感到非常高兴:)。

否则,您可能会在其他网站上创建链接,当您碰巧点击它们时会删除您的整个数据库等。

简而言之:你不能。

在任何没有 csrf 保护的表单上,您必须定位的不是带有表单的页面的 url,而是表单的“操作”。您可以通过使用浏览器的 DOM 检查器检查表单来查看此操作。但是,正如我所说,csrf 保护会阻止它在大多数情况下工作。

http://en.wikipedia.org/wiki/Cross-site_request_forgery

https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)

于 2013-07-10T02:36:22.227 回答