Rubyコードをブラウザ内でマスキングする
Class・Method・識別子・値・Commentを選び、Ruby構文を残した共有用コピーを作成できます。入力SourceはDevelop Toolsのサーバーへ送信・保存されません。
Rubyコードマスキングツールを開く結論
API Key、Token、Private URL、Class名、Method名、Commentを確認し、Ruby構文とException Contextを残した共有用コピーを作ります。
共有前に危険な情報と調査Contextを分ける
class InternalCustomerService
API_TOKEN = "dummy-secret"
def fetch_customer(customer_id:)
URI("https://internal.example.test/users/#{customer_id}")
end
end
| 残す候補 | 隠す候補 |
|---|---|
| class・def・Keyword Argument | Project Class・Method・Constant |
| URI、Net::HTTP、Exception Type | Token、内部URL、Customer ID |
| 分岐・Block・Pattern | Comment、File Path、組織名 |
Rubyコードマスキングツールで確認する手順
- 1. 相談に必要な最小範囲を別Copyへ切り出します。
- 2. クラス・型、メソッド、識別子、値、コメントを選択します。
- 3. Ruby構文とFramework APIを比較します。
- 4. 右クリックで必要語だけ戻し、結果だけ共有します。
見落としを防ぐ確認表
| 分類 | 確認対象 |
|---|---|
| 認証 | API Key、Token、Password |
| 接続 | Host、Path ID、Database URL |
| 識別子 | Class、Module、Method、Variable |
| 周辺 | Comment、Log、Backtrace、File Path |
Ruby固有構文を壊していないか確認する
- class・module・defの宣言と参照、Namespace、Method末尾の?・!が対応しているか
- Keyword Argument、*args、**kwargs、&block、...、do ... end、Brace Blockが残っているか
- _1・_2・itが別識別子へ変換されていないか。使用中なら右クリックで戻すか識別子を対象外にしたか
- String・Symbol・Heredoc・Percent Literal・Regexpの区切りは残っているか。InterpolationとPatternは必要に応じてDummyへ手動再構成したか
- case / in、Rightward Assignment、deconstruct・deconstruct_keys、Endless Method等を対象Ruby Versionで確認したか
- send・public_send・define_method・const_get等の動的参照が宣言と同じDummy名になっているか
現行ツールは`_1`・`it`、動的Symbol参照、String Interpolation、Rails DSLを意味解析しません。該当箇所は出力を手動で揃えてください。
AI・Issue・Chatへ共有する前の最終チェック
- API Key、Access Token、Password、Authorization、DATABASE_URL、Cookieを検索する
- 内部Host、URL、Email、IP Address、Customer ID、File Path、Project名を確認する
- Class、Module、Constant、Method、Instance Variable、Symbol、Hash Key、Commentから組織を推測できないか確認する
- Rails CredentialsのKey、ENV名、Private Gem、Git URL、Route、Log、Backtraceも別々に確認する
- Ruby/RailsのVersion、Exception Type、Line Number、Framework API等の調査Contextが残っているか比較する
- 共有するのはマスキング結果だけにし、元Sourceと対応情報は権限管理された場所に残す
Secret管理とマスキングは別の対策です。Hard-codeしたSecretは共有前に隠すだけでなく、失効・再発行と管理方式の見直しも行ってください。
現在のRubyコードマスキングツールでできること・できないこと
| 確認項目 | 現在の対応 | 注意点 |
|---|---|---|
| 入力 | Rubyテキストの貼り付け | .rb・Gemfile・Rakefile・.rakeの直接読込やDownloadは行わない |
| 基本構文 | class、module、def、終端なしMethod、Variable、Commentを分類 | Ruby Parserと同等の完全な構文解析やVersion自動判定ではない |
| 引数 | 通常引数、Keyword Label、*・**・&・...の記号を保持 | 複雑な分割代入やRuby Version差は実行環境で確認が必要 |
| Block | do ... endとBraceを文字列上で保持 | Brace Block専用Scope解析は行わず、_1・_2・itは自動保護しない |
| Literal | String、Symbol、Regexp、Percent Literal、Heredocの区切りを保持 | 本文を値へ置換するためInterpolationやRegexpの意味は保持しない |
| 動的参照 | send、public_send、define_method等の構文を処理 | Symbol・StringとMethod宣言のMappingは自動同期しない |
| Rails | 貼り付けたRailsコードをRubyとして処理 | Rails DSL、Framework Constant、ERB、Routeを専用解析しない |
| 出力 | 結果コピー、全消去、結果側の右クリックによる個別解除 | Mapping一覧、複数File横断Mapping、履歴保存は行わない |
| 保存 | 表示設定だけをLocalStorageへ保存 | 入力Source・結果・MappingはLocalStorageへ保存しない |
| プライバシー | 入力と変換をブラウザ内で処理 | Sourceと結果をDevelop Toolsのサーバーへ送信・保存しない |
マスキング結果は共有用コピーです。ruby -c、RSpec、Rails Test、RuboCop、実行環境での確認を代替しません。
Ruby・Railsの一次資料で仕様を確認する
- Ruby 4.0: Ruby Syntax
- Ruby 4.0: Pattern Matching
- Rails Guides: Securing Rails Applications
- Rails Guides: Configuring Rails Applications
- Rails Guides: Active Record Encryption
RubyのSyntaxとRailsのCredentials・Log FilterはVersionにより変化します。記事の例だけで断定せず、利用中のRuby・Rails Versionの公式Documentationと実行結果を確認してください。
具体例:Ruby ErrorをAIへ質問
API Key、Token、Private URL、Class名、Method名、Commentを確認し、Ruby構文とException Contextを残した共有用コピーを作ります。
実Token、実顧客情報、内部URLではなくexample.test等のDummy Dataを使い、問題を再現する最小範囲で確認します。
- 最小再現Codeを別Copyへ切り出す
- 識別子・値・Commentをマスキングする
- Ruby固有構文と動的参照を比較する
- マスキング結果だけを共有する
結果側の匿名箇所は右クリックで個別解除できます。解除した元情報が本当に共有に必要か、送信前に再確認してください。
よくある質問
- .rb・Gemfile・Rakefileを直接読み込めますか?
- 直接読込には対応していません。必要なRuby Textを入力欄へ貼り付けます。Gemfile、Rakefile、.rake相当もTextとして処理しますが、File種別専用Parserではありません。
- ERB、_1・it、sendのSymbolも自動で安全に対応しますか?
- 保証しません。ERBのHTML混在、_1・it、動的なSymbol・String参照、Interpolationは手動確認が必要です。必要な箇所は右クリックで戻すかDummy名へ揃えます。
- 入力したRuby Sourceはサーバーへ送信されますか?
- 入力とマスキング結果はブラウザ内で処理され、Develop Toolsのサーバーへ送信・保存されません。LocalStorageへ保存されるのは表示設定だけです。