2024年11月19日火曜日

Sinatra 4.1.0 から permitted_hosts を有効にする必要があります

Sinatra 4.1.0 から permitted_hosts を有効にする必要があります

概要

XFH を使ったオープンリダイレクトの脆弱性を指摘され rack_protection を使ったホスト名 認証を導入したので設定が必要になります
許可されていないホストからのアクセスは Host not permitted になります

環境

  • macOS 15.1
  • Ruby 3.3.5
  • Sinatra 4.1.0

対応方法

host_authorization で permitted_hosts に許可したホスト名を指定します

すべてのホストを許可する場合は空の配列で OK です

require "sinatra/base"

class ExampleApp < Sinatra::Base
  # disable it only for development
  configure :development do
    set :host_authorization, { permitted_hosts: [] }
  end

  # but enable it for production for some domains
  configure :production do
    set :host_authorization, { permitted_hosts: [".example.com"] }
  end

  get("/") { "OK" }
end

最後に

デフォルトでは拒否状態になっているので本番にデプロイする場合は必ず設定する必要があります

参考サイト

0 件のコメント:

コメントを投稿