2025年7月26日土曜日

Sinatra で静的ファイルにレスポンスヘッダーを追加する方法

Sinatra で静的ファイルにレスポンスヘッダーを追加する方法

概要

Rackミドルウェアを使います

環境

  • Ruby 3.4.4
  • Sinatra 4.1.1

設定方法

# 静的ファイルに対するヘッダーを設定するミドルウェア
class StaticHeadersMiddleware
  def initialize(app)
    @app = app
  end

  def call(env)
    status, headers, body = @app.call(env)

    path = env['PATH_INFO']
    if path =~ %r{^/(robots\.txt|favicon\.ico|img/|js/|css/|ipa/)}
      headers['Content-Security-Policy'] ||= "default-src 'self';"
      headers['Cross-Origin-Embedder-Policy'] ||= 'require-corp'
      headers['Cross-Origin-Opener-Policy'] ||= 'same-origin'
      headers['Cross-Origin-Resource-Policy'] ||= 'same-origin'
    end

    [status, headers, body]
  end
end

use StaticHeadersMiddleware

最後に

これで zaproxy の Insufficient Site Isolation Against Spectre Vulnerability に静的ファイルも対処できます

0 件のコメント:

コメントを投稿