PyPIにパブリッシュしたら「File exceeds compression ratio of 50」というエラーが出る問題
概要 PyPIにパッケージをパブリッシュしようとしたら、以下のようなエラーが出てパブリッシュできなかった。 <html> <head> <title>400 Invalid distribution file. File exceeds compression ratio of 50</title> </head> <body> <h1>400 Invalid distribution file. File exceeds compression ratio of 50</h1> The server could not comply with the request since it is either malformed or otherwise incorrect.<br/><br/> Invalid distribution file. File exceeds compression ratio of 50 </body> </html> 間接的原因. なぜエラーが発生したのか? 解凍したときにファイルサイズが50倍以上に膨れ上がるzipファイルをアップロードしたことが原因だった。 ちなみに、解凍したらサイズが膨れ上がるようなファイルを利用してシステムをクラッシュさせるような攻撃をZip Bombと呼ぶらしい。全然知らなかった。 高圧縮ファイル爆弾 46MBが4.5PBへと膨れ上がるZIP爆弾がネット上で公開中 Zip Bombを防ぐために、PyPIでは2023年の6月頃から圧縮率50倍を超えるファイルを含むパッケージのパブリッシュを拒否するようになっているようだ。 最初は圧縮率10倍以上で弾いていたが、制限が厳しすぎるということで50倍以上に緩和されたらしい。 PyPI is now requiring wheels to be too much compressed ...