我正在使用此表单的自动填充:http://getpocket.com/save
我正在使用它而不是API,以便当用户在与我的网站相同的浏览器上登录Pocket时它可以正常工作。
然而,要点击“保存”并不是一个好的用户体验,那么如何“自动化”呢?
我不会显示我的代码,因为它本质上只是生成以下形式的链接:
http://getpocket.com/save/?title=thetitle&url=encodedurl
它填写表格很好,但我该如何提交?我尝试了&save
和&submit
,然后每个=True
,都是徒劳的。问题是保存按钮没有name=
字段,这是用于挂钩标题和URL字段的字段吗?
编辑:为了清楚起见,我没有任何恶意,仅保存文章以便稍后点击按钮阅读。
如果我找到时间,我会看看API。
答案 0 :(得分:2)
幸运的是,这是不可能的(在Pocket和大多数网站上),因为跨站点伪造请求保护,以防止您正在尝试做什么。
在表单中设置一个令牌,并与口袋上的用户(或使用csfr令牌保护的任何其他站点)的会话信息一起设置,它将需要形成某种秘密哈希。提交“保存”表单时,将检查这些字符串的组合,通常会设置新字符串。因为(实际上)没有机会你能够从表单本身预测令牌并且没有真正的方法来操纵会话哈希,所以你运气不好。我们都非常高兴:)。
否则,当您碰巧点击它们等时,您可以在其他网站上建立删除整个数据库的链接。
简而言之:你做不到。
在没有csrf保护的任何表单上,你必须不是使用表单的页面的url,而是表单的'action'。您可以通过浏览器的DOM检查器检查表单来查看此操作。但是,正如我所说,csrf保护将阻止它在大多数时间工作。
http://en.wikipedia.org/wiki/Cross-site_request_forgery
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)