내 세션에 active_record_store와 함께 Rails 3.2.3을 사용하고 있습니다.CSRF 토큰 세션 재설정
레일스의 CSRF 토큰은 세션에 저장되므로 reset_session이 호출되거나 어떤 이유로 세션이 삭제되지 않는 한 다시 설정하면 안됩니다.
그러나 원격 양식이 아약스를 통해로드되는 특정 위치에는 해당 페이지의 META 태그에 지정된 것과 다른 진위 토큰이 들어 있습니다. 따라서 해당 양식 제출시 유효하지 않은 토큰 오류 및 reset_session이 발생합니다. [: _ csrf_token] 파괴지고 새로운 토큰을 생성
def form_authenticity_token
session[:_csrf_token] ||= SecureRandom.base64(32)
end
나는 세션이 왜 세션을가는 유효한을 위해 그림 할 수없는 무엇입니까?
많은 사냥을 한 후에 마침내이 문제를 파악했습니다. 나는 모델 객체를 세션에 직접 저장하고 있었지만 크기 제한이 65KB 인 활성 레코드 세션 저장소를 사용한 후에도 세션이 4kb 이후에 자르면 CRSF 토큰이 지워지고 새 메시지가 생성되었습니다. 예! Blunder ... 달리 할 이유가 없다면 모델 객체를 세션에 저장하지 마십시오. 어쨌든 아직도 활성 레코드 세션 저장소가있는 후에도 더 큰 개체를 세션에 저장할 수 없었던 이유를 알아 내려고했습니다. – Ravi
질문에 답하십시오. 그래서 그것의 폐쇄. 감사. – Roger