我正在处理这种形式的自动填充:http://getpocket.com/save
我正在使用它而不是 API,以便当用户在与我的网站相同的浏览器上登录 Pocket 时它可以工作。
但是,必须单击"保存"并不是一个好的用户体验,那么我如何"自动化"呢?
我不会显示我的代码,因为它本质上只是生成表单的链接:
http://getpocket.com/save/?title=thetitle&url=encodedurl
它很好地填充了表单,但我如何提交?我试着等待&save
和&submit
,然后每一个=True
,徒劳无功。问题是保存按钮没有name=
字段,这是用于挂钩到标题和 URL 字段的字段?
编辑:为了清楚起见,我没有任何恶意,只是为了保存文章以供以后单击按钮阅读。
如果我有时间,我会看看 API。
幸运的是,这是不可能的(在 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_(企业社会责任(