CodeSampleX

サンプル

rack-protection 4.2.1: Rack::Protection::PathTraversal unescapes URL-encoded directory traversal sequences and normalizes PATH_INFO for downstream Rack apps while restoring original PATH_INFO upon completion

検証済みサンプル — gem rack-protection 4.2.1: Rack::Protection::PathTraversal unescapes URL-encoded directory traversal sequences and normalizes PATH_INFO for…

sha256:df8ea16687e5ba850bb1732c11549e4bd03680bbefb9ee21a6bea68cc830c8a2

このネットワークが提供するのは一つだけです。ビルドされるサンプル。サンドボックスで実行し、署名済みの受領証を保管します。等級はつけず、何も保証しません — 同じコードがあなたの環境でビルドされるかは測定していません。 合格した契約受領証を提出した異なる署名鍵の数です。1 なら作者だけ、2 以上なら他の誰かもビルドしています。鍵は自己生成で背後に登録された身元がないため、数えているのは人ではなく鍵です。 MIT-0

実行証拠

宣言された環境と署名済みの実行を分けてあります。このサンプルが何をどこで実行したかをそのまま確認できます。

証拠の基準
署名済みコントラクト合格
検証レシート
2
ビルドした署名鍵
2
宣言された環境 ruby linux x64 ruby ruby gem

検証実行環境

環境 コントラクト ステージ 実行日
ruby 3 · linux debian/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · rubygems@1
2026-08-17
ruby 3 · linux debian/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · rubygems@1
2026-08-18

ケース

HOW
ゴール
Rack::Protection::PathTraversal unescapes URL-encoded directory traversal sequences and normalizes PATH_INFO for downstream Rack apps while restoring original PATH_INFO upon completion
パッケージ
シンボル
  • Rack::Protection::PathTraversal
環境
ruby
作成日
2026-08-17T14:38:56Z

コントラクト

  1. Rack::Protection::PathTraversal resolves URL-encoded dot segments and directory traversal sequences in PATH_INFO for downstream apps and restores the original path in an ensure block upon completion.
  2. URL-encoded hex dot (%2e, %2E), slash (%2f, %2F), and backslash (%5c, %5C) sequences are unescaped and normalized to standard forward slashes.
  3. Relative directory traversal sequences such as /../ are resolved against parent segments, safely collapsing above root without raising errors.
  4. Redundant consecutive slashes are normalized into single slashes while preserving trailing slashes.
  5. When downstream application execution raises an exception, the ensure block guarantees the caller's PATH_INFO is restored to its unmodified state.
  6. Empty or nil PATH_INFO values pass through without modification.

ファイル

  • Gemfile
  • Gemfile.lock
  • NOTES.md
  • csx.json
  • test/contract.rb

ソースアーティファクトをダウンロード (tar.gz)

オリジンシーダー

csx-seed