URL: https://linuxfr.org/suivi/la-tribune-ne-permet-plus-aux-clients-externes-de-poster Title: La tribune ne permet plus aux clients externes de poster Authors: seeschloß Date: 2018年06月25日T09:24:01+02:00 License: CC By-SA Tags: Score: 6 Depuis la dernière mise à jour, le BoardsController vérifie à nouveau la validité de l'authenticity_token pour accepter un post sur la tribune. Cela empêche les clients externes, qui n'ont pas accès à ce token, de poster, ce qui représente probablement 80% des utilisateurs de la tribune. Je ne suis pas sûr de comprendre la raison des commits : ```diff Accept the referer for voting on poll (instead of authenticity token) diff --git a/app/controllers/boards_controller.rb b/app/controllers/boards_controller.rb index d2ddd8ca..466bbfef 100644 --- a/app/controllers/boards_controller.rb +++ b/app/controllers/boards_controller.rb @@ -32,10 +32,6 @@ protected params.require(:board).permit(:object_type, :object_id, :message) end - def verify_referer_or_authenticity_token - request.referer =~ /^https?:\/\/#{MY_DOMAIN}\// or verify_authenticity_token - end - def expire_cache expire_page action: :show, format: :xml end ``` ```diff Kill verify_referer_or_authenticity_token diff --git a/app/controllers/boards_controller.rb b/app/controllers/boards_controller.rb index c6508f07..1ffe4a7b 100644 --- a/app/controllers/boards_controller.rb +++ b/app/controllers/boards_controller.rb @@ -1,7 +1,5 @@ # encoding: utf-8 class BoardsController < ApplicationController - skip_before_action :verify_authenticity_token - before_action :verify_referer_or_authenticity_token, only: [:create] before_action :authenticate_account!, only: :create after_action :expire_cache, only: [:create] caches_page :show, if: Proc.new { |c| c.request.format.xml? } ``` Ça l'air d'avoir un rapport avec les sondages, mais je ne vois pas le rapport entre le BoardsController et les sondages, mais voilà. J'ai une pull request ici : https://github.com/linuxfrorg/linuxfr.org/pull/227 qui re-désactive `verify_authenticity_token` au post sur la tribune (sans toutefois remettre toute la fonction `verify_referer_or_authenticity_token` parce que j'imagine qu'elle a disparu pour une bonne raison).