2

ソースRack::Session::Cookieには、Cookie の整合性をチェックするシークレットを設定しないことに関する次の警告が含まれています。

Rack::Session::Cookie に提供されるシークレット オプションはありません。これはセキュリティ上の脅威となります。細工された Cookie による悪用を防ぐために、シークレットを提供することを強くお勧めします。

モジュールを使用する場合Rack::Session::Cookie、次の方法でシークレットを設定できます。

use Rack::Session::Cookie, secret: 'change_me'

ただし、Rack::Session::Pool「単純な Cookie ベースのセッション管理を提供する」を使用しています。シークレットも提供する必要があると思いますが、関連する例が見つかりません。ソースコード/ドキュメントもあまり役に立ちません。これを行う必要があるかどうか、また必要な場合はどのように達成するかを知っている人はいますか?

4

1 に答える 1

2

との違いに関するこの質問と回答を見るCookiePool、「id」(実際にはSID ) のみが Cookie 内に保持され、それ以外はすべてメモリに保持されることがわかります。データがメモリ内にある場合、HMAC を生成する必要性は、Cookie に保存されている場合よりもはるかに少なくなります。本当にそれが必要な場合は、あなた次第だと思います。

sourceを調べたところ、Poolはオプションとして渡されたシークレットを検索しませんが、Cookieは検索します。

ソースを読んで、Pool毎回一意の SID が生成されるため、データのキー/ID が公開されていないと思います。

ちなみに、Cookie の使用を選択する場合は、それらを暗号化してください

于 2013-02-13T03:47:57.603 に答える