Deviseの覚えているモジュールにhttp_onlyを使用するにはどうすればよいですか?
-
11-10-2019 - |
質問
Railsセッションクッキーはです HttpOnly
デフォルトでは remember_user_token
DeviseのRememerableモジュールによって設定されたCookieはそうではありません。
私が理解しているように、送信されたときにクッキーがユーザーに新しいセッションCookieが発行されることになるので、確かにXSSに対して脆弱です。
それで、それを設定する方法はあります HttpOnly
?
解決
#rubyonrailsの@camonzの助けを借りて、私はこのモンキーパッチを思いつきました。https://gist.github.com/749289
Devise 1.1.3では、Cookieオプションがハードコーディングされているため、モンキーパッチだけでうまくいくと思うのはすべてです。
ただし、Devise 1.2RCは、引っ張るため構成を許可するように見えます resource.cookie_options
(たとえば、ユーザーモデルからCookie_optionsを引くため、どういうわけかそこに設定できるはずです - まだそれを理解していません)。
PSこれをまだテストする方法を理解していません。 Chromeで手動でテストするタブに切り替えて、Cookieが設定され、Alt + CMD + Iを使用してオープン開発者ツールを開き、[ストレージ]タブに切り替え、「Cookies」(私の場合はLocalHost)の下のアイテムをクリックし、HTTPを見てください桁。クッキーがhttponlyの場合、ダニがあります。参照のために、RailsセッションCookie(呼び出し) _session_id
デフォルトでは、デフォルトではhttponlyです。