Ruby on rails 我可以使用curl或curb来发布到使用rails的表单吗';跨站点请求伪造保护?
我有一个简单的rails网页,用户在其中输入一些文本字段并上传图片。Rails然后存储图片并更新服务器上的数据库。它很好用 但是,我还需要另一台计算机上的脚本,以便偶尔使用curl/curb库更新网页。但是,当我尝试这样做时,会出现以下错误: ActionController::InvalidAuthenticationToken(ActionController::InvalidAuthenticationToken) 当我仔细观察时,rails似乎会在创建表单时放入一个名为“authenticity_token”的隐藏字段:Ruby on rails 我可以使用curl或curb来发布到使用rails的表单吗';跨站点请求伪造保护?,ruby-on-rails,ruby,curb,Ruby On Rails,Ruby,Curb,我有一个简单的rails网页,用户在其中输入一些文本字段并上传图片。Rails然后存储图片并更新服务器上的数据库。它很好用 但是,我还需要另一台计算机上的脚本,以便偶尔使用curl/curb库更新网页。但是,当我尝试这样做时,会出现以下错误: ActionController::InvalidAuthenticationToken(ActionController::InvalidAuthenticationToken) 当我仔细观察时,rails似乎会在创建表单时放入一个名为“authenti
. . .
路缘脚本将无法工作,因为它没有“真实性”标记。这有什么办法吗?可能会制作另一个网页,做同样的事情,但只是为了我的抑制脚本?隐藏的输入是为了防止。如果不先获取表单并提取隐藏的
authenticity\u令牌
参数,就无法发布到受保护的rails操作。curl不够聪明,无法独立完成这项工作
您有两个选择:
protect\u from\u fackery
的调用,关闭CSRF保护。坏主意/name=“authenticity\u token”。*value=“([^”]+)”/
然后运行另一个请求,为authenticity\u token
发布该值。它很脆弱,可能会让人们讨厌你,但它会起作用curl
更复杂的方法对表单和后续提交进行必要的请求。这似乎是事实上的标准隐藏的输入是用来防止的。如果不先获取表单并提取隐藏的
authenticity\u标记
参数,就无法发布受保护的rails操作。curl本身不够聪明,无法做到这一点
您有两个选择:
protect\u from\u farmy
的调用来关闭CSRF保护。这不是个好主意/name=“authenticity\u token”。*value=“([^”]+)”/
然后运行另一个请求,为真实性\u令牌发布该值。它很脆弱,可能会让人讨厌你,但它会起作用
curl
更复杂的方法对表单和后续提交进行必要的请求。似乎是事实上的标准如何使用mechanize提交表格:
Mechanize.new.get('url_with_form').forms[0].tap{|f| f.field = 'value'}.submit
如何使用mechanize提交表格:
Mechanize.new.get('url_with_form').forms[0].tap{|f| f.field = 'value'}.submit
我不熟悉路缘,但如果这个东西可以做文章,我想它可以做得到。为什么不让它做一个get并拉出auth令牌然后做post呢?在你用regex解析这个响应之前,我一直同意。我不熟悉curb,但是如果这个东西可以做post,我想它可以做get。为什么不让它做一个get并拉出auth令牌,然后做post呢?在你用regex解析响应之前,我是同意的。你使用curl的事实让我猜你来自php背景。好消息是你再也不用使用curl了。实际上,我使用的是使用curl库的curb。我已经好几年没有编写PHP了。事实上,您使用的是curl,这让我猜测您来自PHP背景。好消息是你再也不用使用curl了。实际上,我使用的是使用curl库的curb。我已经好几年没有编写PHP了。