質問: ``` curl -v -H 'Accept-Encoding: gzip' 'https://cdnjs.cloudflare.com/ajax/libs/Colors.js/1.2.2/colors.min.js' ``` ご覧のとおり、結果はgzippedです。 私の前提は、サードパーティのドメインから提供されているため、私にとって安全です。自分のドメインから配信されるときにのみ無効にする必要があります。
回答: 最初に、*ではなく、*ではSSLレベルの圧縮を使用しますが、HTTPレベルの圧縮では圧縮のモードを示すHTTPヘッダーがあります。圧縮はHTTP応答*本体*のみ、つまり`colors.min.js`ファイルに適用されます。他のもの、特にHTTPクッキーなどの値は除きます。 *秘密値*に適用されると、攻撃者が*多くの例の変種で、それらのすべてに繰り返し同じ秘密を持つ圧縮データの*、だけでなく、を取得する可能性がある場合 圧縮は安全ではありません。特に、攻撃者が圧縮されたデータシーケンス内で彼が選択したデータ*を*に挿入すると、 あなたが表示する場合、秘密のデータはまったくありません。圧縮されたデータシーケンスは完全に公開されたJavascriptです。圧縮は、データ*のコンテンツ*の情報を、データ*の長さ*(そして*の長さは*で、その後の暗号化によって保護されません)に関する情報を漏らす能力によって悪用されます。ソースデータが完全に公開されている場合は、リークする情報がないため、攻撃はありません。 (`colors.min.js`はパブリックですが、あなたはまだない*機密*のためではなく、*整合性*ため、HTTPS経由で取得したい:あなたはその場でJavascriptのコードを変更することから、アクティブな攻撃を防ぎたい) でも圧縮されたデータが公開されていない場合は、圧縮が決定的であり、毎回まったく同じバイト列が得られるため、静的ファイルは圧縮された状態で提供される可能性があります。アタッカー。