[ruby-on-rails] Rack :: Session :: Cookie 경고에 비밀 옵션이 제공되지 않습니까?

Fedora 17에서 Rails 3.2.3, Ruby 1.9를 실행 rails s하고 있습니다.를 실행할 때이 경고가 표시 되며 어떻게 수정합니까?

보안 경고 : Rack :: Session :: Cookie에 제공되는 비밀 옵션이 없습니다. 이는 보안 위협이됩니다. 제작 된 쿠키에서 발생할 수있는 악용을 방지하기 위해 비밀을 제공하는 것이 좋습니다. 이는 향후 버전의 Rack에서 지원되지 않으며 향후 버전은 기존 사용자 쿠키도 무효화합니다.



답변

하위 클래스가 수퍼 클래스 API 계약을 위반하므로 이것은 Rails 버그입니다.

Rails 사용자는 경고를 무시해도됩니다.

( https://github.com/rack/rack/issues/485#issuecomment-11956708 , 강조 추가됨)

Rails 버그 토론에 대한 확인 : https://github.com/rails/rails/issues/7372#issuecomment-11981397


답변

tehgeekmeisters 답변을 기반으로 한 토론을 읽으면 Rails가 의도 한 것과 다른 방식으로 Rack 쿠키를 사용하기 때문에이 경고가 나타납니다. 이 문제를 처리하는 방법과 해결 방법에 대한 최종 합의가있을 때까지 지금은이 경고를 무시해도됩니다.


답변

이 문제는 방금 릴리스 된 Rails 3.2.11에서 해결되었습니다.

로그 : https://github.com/rails/rails/commits/v3.2.11

커밋 : https://github.com/rails/rails/commit/95fe9ef945a35f56fa1c3ef356aec4a3b868937c


답변

rails 3.2.9-루비 1.9.3p125 (2012-02-16 개정 34643) [i686-linux]

안녕하세요 여러분, 다음이 저에게 효과적이었습니다.

/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-3.2.9/lib/action_dispatch/middleware/session/abstract_store.rb
module Compatibility
          def initialize(app, options = {})
            options[:key]     ||= '_session_id'
            #fixed warning - SECURITY WARNING: No secret option provided to Rack::Session::Cookie.
            options[:secret] ||= Rails.application.config.secret_token
            super
          end
    end


답변

랙 1.4.1로 다운 그레이드하면 당분간이 문제를 해결할 수 있습니다. 이것 에 대해 열린 문제가 있으며 방금 수정 한 것처럼 보이는 풀 요청 을 제출했습니다 . 어떤 경우 든 문제를 확인하면 문제가 해결 된 후 랙 1.4.2로 업그레이드 할 수 있습니다.

분명히 다른 문제 에서이 문제 를 해결하는 방법에 대한 논의가 진행 중 입니다. 1.4.1로 다운 그레이드하거나 무시하거나이 문제가 해결 될 때까지 자신의 수정 사항을 찾아야합니다 (그 경우에도 백 포트 됨).


답변

Github https://github.com/rails/rails/issues/8789 에서 문제가 열렸습니다. . Rack 1.4.2가있는 Rails 3.2.10과 관련된 버그가 원인 인 것으로 보입니다. IMO, 문제가 해결 될 때까지 무시해도됩니다.

수정 :이 문제는 Rails 3.2.11에서 해결되었습니다.


답변

레일이 3.2.13으로 업데이트되면이 질문을 해결할 수 있습니다.