Open8
WebSavedata: パスワードマネージャが保存できるパスワードの最大長は何バイトなのか問題

最も厳しい環境、SafariのITP下では、Webサイトは7日間アクセスされないとそのステートを失ってしまう。
じゃぁパスワードマネージャーみたいな絶対失われないストレージにステートを保存すれば良いじゃん。
結果
2〜3KiB程度のデータであれば保存できそうだ。ただし相性問題が出そうな兆候はある:
- MS Edgeはどうも何もログイン等しない状態だと 256バイトという激烈な制約がある
- BitwardenのようなFOSSソリューションはデータ量制約から5000バイト付近に制約している

Bitwardenは暗号化後5000バイト
Bitwardenは直接的にこの問題を議論していた:
それによると最近のサーバーでは5000バイトに拡張されたようなので、じゃぁbase64(2KiB)くらいは安全圏だな。Google drive等のアクセストークンを格納するのには十分なサイズと言える。

ランダムデータを作成
3004バイトのランダムなbase64データを生成した。
これを各所のWebブラウザのパスワードマネージャーに設定してまわってみる。

1Password
問題なく設定できた。

Firefoxのパスワードマネージャー
問題なく設定できた。

MS Edge
設定できず。。
PasswordManagerRestrictLengthEnabled
が設定されていると、なんと256文字に制限されてしまうらしい。まぁ、Chromium系のブラウザは滅多な事でローカルストレージが消えたりしないから別にいいか。。?

Google Chrome
問題なく設定できた。

macOSのSafari
問題なく設定できた。
ログインするとコメントできます