satorumurmur / bibi

Bibi | EPUB Reader on your website.
https://bibi.epub.link
MIT License
843 stars 123 forks source link

Bibi does not send the cookies #81

Closed a-yasui closed 4 years ago

a-yasui commented 4 years ago

Bibi v0.999.9-r8 から Bibi v1.1.1 にバージョンアップをしたところ、 Cookie を投げなくなって少し困ってます。

アドバイスをいただけたら幸いです。

現象

Bibi v0.999.9-r8 では Epub を取得する時に Cookie を投げていましたが、Bibi v1.1.1 で投げなくなったため、認証が必要なEPubコンテンツの取得ができなくなった。

Epubコンテンツは同一ホストにあるので、default.js にある trustworthy-origins[] にしています。

開発者ツールのスクリーンショットを添付します。(都合上、クッキーの内容とホスト名は伏せています。)

v0.999.9-r8

bibi v0.999.9-r8

v1.1.1

bibi v1.1.1

a-yasui commented 4 years ago

あー…ごめんなさい。 httpOnly が元ページの読み込み時に投げていました。

すっかり失念していました。

satorumurmur commented 4 years ago

v1.0.0 より古い Bibi は設定の保存と最終表示位置の保存のために Cookie を使用していましたが、v1.0.0 以降では localStorage に移行し、Cookie を使用しなくなりました。さらにその際、リクエストの肥大化を避けるべく旧バージョンの Cookie を消す処理を入れてあったりもします。

もし Bibi 自身が記録していた Cookie に依存する実装があった場合は、Cookie を利用しなくなったり削除するようになったりしたことが問題になってしまったかもしれません(すみません)。が、根本的には、認証に関わるようなクリティカルな目的には、独自の実装をしていただくほうが一般論としても良いのではないかと考えます(こと Bibi の Cookie に関しては、Bibi 側としてはあくまでもテンポラリデータを保持するためだけの Cookie で、また、旧来形式で再度 Cookie を使い始める予定もないため、これに頼ってしまうのは弱いように思われます)。

ただ、(おそらく最後にいただいているコメントもこのことかと思いますが、)Bibi が Cookie を投げなくなっているわけではありません。したがいまして、独自実装で Cookie をご利用になること自体は可能だと思います。

 *

なお、上でリンクさせた旧バージョンの Cookie を消す処理の1行についてはそろそろ消そうと思っていますので、お手元のバージョンからもあらかじめ削除して次のバージョンをお待ちいただいて問題ありません。ただ、やはり認証に関わる部分は独自に実装していただくようにお願いします(ご依頼があればエクステンション形式での機能追加など、協力させていただきます)。