5

匿名ユーザーから .PDF ファイルを保護するため、カスタム ハンドラーがあり、エントリがあります。

また、次のように system.webserver 要素の下に web.config エントリを作成する IIS 7 管理を介して "cache-control: no-cache,no-store" を追加するように http ヘッダーを変更しました。

<httpProtocol>

  <customHeaders>
    <clear />
    <add name="cache-control" value="no-cache,no-store" />
  </customHeaders>

</httpProtocol>

Burpsuite セッションで応答ヘッダーを確認すると、.aspx ページが次のように表示されます: cache-control: no-store,no-cache,no-store

ただし、PDF ページの場合:

キャッシュ制御:プライベート、キャッシュなし、ストアなし

私の目標は、すべてを「キャッシュなし、ストアなし」にすることです。何が欠けているのかわかりません。web.config には他のキャッシュ設定はありません。PDFページから「プライベート」を削除し、他のすべてから余分なノーストアを削除する方法についてアドバイスしてください. System.Web.StaticFileHandler を通過するその他の静的ページには、「ストアなし、キャッシュなし、ストアなし」もあります。

4

2 に答える 2

0

IIS 7 がキャッシュ コントロールに「プライベート」を追加する理由を説明することはできませんが、独自の ASHX ベースのパススルー プロキシでそれを取り除く方法を示すことはできます (元の投稿の下の最初のコメントを参照)。 .

public class proxy : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        HttpResponse response = context.Response;

        // Remove the 'private' string value from the response.CacheControl member
        if (response.CacheControl == "private")
        {
            response.CacheControl = String.Empty;
        }

        // Do other stuff
    }
}

Visual Studio で組み込みの Cassini Web 開発サーバーを使用している場合、これは機能しません。ヘッダーをいじるには、開発環境で本格的な IIS Web サーバーに切り替える必要があります。

于 2012-06-26T20:33:29.387 に答える