アカウント名:
パスワード:
これ、症状の記述だけから見て取れるのは、メモリ使用量を膨らませる攻撃なんだよね。遅くなる話はメモリ使用量増加によるスラッシングだろうし、クラッシュはメモリもswap(=ディスクの空き)も使い切って次のメモリ確保に失敗したからだよね。
リークじゃなくて、ダウンロードが全部完了するまでメモリ開放しないからってことかな?
実際に動かしてみたら、保存先の確認が出て、どうしようかなーと思っている10秒ぐらいでブラウザがクラッシュした。複数ダウンロードの許可を求めてきたけど、許可も拒否もしないのに先のプロセスに進んでしまったので意味をなさないっぽい。実証コードは生成したBlobを猛烈な勢いで保存しようとしているだけ。悪意がなくてもバグでやらかしそうな感じのコードだなこれ。
どうせ二択なんだからボタンが押されるのを待っている間にもある程度ダウンロードしておけば結果的に待ち時間が短くなる。キャンセル押されたらメモリ内にダウンロードした内容を破棄すればいいだけ。デメリットは無駄なトラフィックを生んだことくらい。巨大なデータをダウンロードすることは十分考えられるので、たぶん先読みサイズの上限みたいなものは設定されてると思われる。
確認ダイアログに表示するためにファイル名を取得する必要がある。「非常に長いファイル名×膨大な応答待ちダイアログ」という形でダウンロード待ちが増えることによって、データ自体はダウンロードしてなくても大量にメモリを消費させることができる。つまりダイアログにファイル名を表示していれば、先読みをやめても何の解決にもならないかも。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ハッカーとクラッカーの違い。大してないと思います -- あるアレゲ
メモリ使用量を膨らませる攻撃 (スコア:2)
これ、症状の記述だけから見て取れるのは、メモリ使用量を膨らませる攻撃なんだよね。
遅くなる話はメモリ使用量増加によるスラッシングだろうし、クラッシュはメモリもswap(=ディスクの空き)も使い切って次のメモリ確保に失敗したからだよね。
リークじゃなくて、ダウンロードが全部完了するまでメモリ開放しないからってことかな?
Re: (スコア:0)
実際に動かしてみたら、保存先の確認が出て、どうしようかなーと思っている10秒ぐらいでブラウザがクラッシュした。
複数ダウンロードの許可を求めてきたけど、許可も拒否もしないのに先のプロセスに進んでしまったので意味をなさないっぽい。
実証コードは生成したBlobを猛烈な勢いで保存しようとしているだけ。悪意がなくてもバグでやらかしそうな感じのコードだなこれ。
Re:メモリ使用量を膨らませる攻撃 (スコア:1)
どうせ二択なんだからボタンが押されるのを待っている間にもある程度ダウンロードしておけば結果的に待ち時間が短くなる。キャンセル押されたらメモリ内にダウンロードした内容を破棄すればいいだけ。デメリットは無駄なトラフィックを生んだことくらい。
巨大なデータをダウンロードすることは十分考えられるので、たぶん先読みサイズの上限みたいなものは設定されてると思われる。
確認ダイアログに表示するためにファイル名を取得する必要がある。
「非常に長いファイル名×膨大な応答待ちダイアログ」という形でダウンロード待ちが増えることによって、データ自体はダウンロードしてなくても大量にメモリを消費させることができる。
つまりダイアログにファイル名を表示していれば、先読みをやめても何の解決にもならないかも。
うじゃうじゃ