Railsはコントローラーで session に書き込みを行うとセッションIDがアサインされ、Set-CookieでCookieにセッションIDが設定される。
デフォルトでは全てのリクエストでCSRFトークンをセッションに格納しているため、何も設定していないとランディングページなどのセッションをあまり必要としない静的ページへのアクセスでセッションストアの容量が圧迫されたりしてしまう。
コントローラーで protect_against_forgery?
をオーバーライドして false を返すようにすると、session に書き込みが行われないため、新規にセッションIDがアサインされなくなる。
class StaticPagesController < ApplicationController
skip_before_action :authenticate_user!
parivate
def protect_against_forgery?
false
end
end
ただし当然ながらCSRFトークンが作成されなくなるため、使いどころは注意されたし。