VB.NETコードをブラウザ内でマスキングする
クラス・型、関数・メソッド、識別子、値、コメントを選び、VB.NET構造を確認できる共有用コピーを作成します。入力コードはDevelop Toolsのサーバーへ送信・保存されません。
VB.NETコードマスキングツールを開く結論
元Projectではなく共有用コピーを作り、Class・Method・Variable・String・Number・Commentをマスキングします。Target Framework、例外型、再現手順は残し、結果を目視確認します。
元Projectを直接編集せず、共有用コピーで作業してください。
残すContextと隠す情報を先に分ける
Public Class CustomerForm
Private Async Function LoadCustomerAsync(id As String) As Task
Dim endpoint = "https://api.example.test/customers/" & id
Await client.GetAsync(endpoint)
End Function
End Class
Form名、Control名、URL、ID、Logには組織や顧客を推測できる情報が残る場合があります。
VB.NETコードマスキングツールで確認する手順
- 1. 再現に必要なClassとMethodだけを別コピーへ切り出します。
- 2. マスキング対象を選んで実行します。
- 3. VB.NET構文と同名参照を比較します。
- 4. 右クリックで戻す情報を最小限にします。
見落としを防ぐ確認表
| 分類 | 確認対象 |
|---|---|
| Context | .NET、UI Framework、例外 |
| Identifier | Namespace、Class、Method、Control |
| Value | URL、Path、Credential、業務値 |
| Share | 結果だけ、最小再現、再現手順 |
VB.NET固有の構文と再現条件を残せているか確認する
- Option Explicit・Strict・Infer・Compareと、Project側のCompiler設定を記録する
- Class・Module・Namespace、Sub・Function・Property、宣言と参照の対応を確認する
- Nothing・Nullable(Of T)・DBNull、値型・参照型を混同しない
- ByVal・ByRef・Optional・ParamArray、Generic、Lambdaの境界を変えない
- Async・Await・Task・Async Sub、Cancellation、UI Thread条件を残す
- LINQ Query、Handles・WithEvents・AddHandler・RemoveHandler、Try・Catch・Finallyを残す
- XML Literal、#If・#Const、補間文字列はマスキング前後を特に目視確認する
現行ツールはString内部のSQL・接続文字列・URL・JSONを分解しません。必要ならSQL・JSON・URL・Log用ツールでも別コピーを確認してください。
AI・Issue・ベンダーへ共有する前の最終チェック
- Password、API Key、Token、Connection String、Cookie、Authorizationを検索する
- 顧客名、Email、社員番号、Control名、Form名、業務用Enum・定数を確認する
- UNC Path、Windows User名、Server・Database名、URL、IP Addressを確認する
- SQL、Log、Exception Message、AppSettings、Environment Variableも点検する
- .NET・Visual Studio・Target Framework・Application種類・例外型・再現手順は残す
- 共有するのはマスキング結果だけにし、元Codeと対応情報は権限管理された場所へ残す
実CredentialがCodeやGit履歴へ入っていた場合、文字列のマスキングだけでは対処になりません。失効・再発行とSecret管理の見直しを行ってください。
現在のVB.NETコードマスキングツールでできること・できないこと
| 確認項目 | 現在の対応 | 注意点 |
|---|---|---|
| 入力 | VB.NETテキストの貼り付け | .vb・.vbproj・Solutionの直接読込、Project一括処理、Downloadは行わない |
| 分類 | クラス・型、関数・メソッド、識別子、値、コメント | Roslyn、Visual Studio、VB Compilerと同等の構文・型・参照解析ではない |
| 宣言 | Class、Structure、Interface、Enum、Namespace、Module、Delegate、Sub、Function、Property、Operator、変数・引数を文脈から推定 | Overload解決、Extension Method、Partial型の結合、Event Wiring、Designerとの対応は意味解析しない |
| 値 | String・Char・Date・Numberを種類に応じて置換 | Connection String、SQL、XML、JSON、URL、File Pathの文字列内部を項目別には解析しない |
| VB固有構文 | Option、Nothing、ByVal・ByRef、LINQ、Async・Await、Handles等の予約語を保持 | Nullable、Control Flow、Thread、UI Context、型変換の正しさは判定しない |
| 複合構文 | Directive・XML Documentation Comment・補間文字列をトークンとして扱う | 補間文字列は値全体が置換される。XML Literal・#If・#ConstをCompiler相当には検証しない |
| 出力 | 結果コピー、全消去、結果側の右クリックによる個別解除 | Mapping View、Mapping Download、履歴保存、復元用Fileは提供しない |
| 保存 | Font・Theme等の表示設定だけをLocalStorageへ保存 | 入力VB.NET、結果、対応表はLocalStorageへ保存しない |
| プライバシー | 入力と変換をブラウザ内で処理 | VB.NETコードと結果をDevelop Toolsのサーバーへ送信・保存しない |
マスキング結果は共有用コピーです。Visual StudioのBuild、Compiler診断、Unit Test、Security Reviewを代替しません。
Microsoft公式資料と対象Projectで仕様を確認する
- Microsoft Learn: Option Strict Statement
- Microsoft Learn: Nothing
- Microsoft Learn: Nullable Value Types
- Microsoft Learn: Passing Arguments by Value and by Reference
- Microsoft Learn: Asynchronous Programming with Async and Await
- Microsoft Learn: Visual Basic Features That Support LINQ
- Microsoft Learn: Try...Catch...Finally Statement
- Microsoft Learn: XML Literals Overview
VB.NETはTarget Framework、Project設定、UI Framework、Library Versionで挙動が変わります。記事の例だけで断定せず、Microsoft Learnと対象ProjectのBuild結果で確認してください。
具体例:社内WinFormsコードをAIへ相談
元Projectではなく共有用コピーを作り、Class・Method・Variable・String・Number・Commentをマスキングします。Target Framework、例外型、再現手順は残し、結果を目視確認します。
実Credential、実顧客情報、内部Pathではなくexample.testやDummy Objectを使い、問題を再現する最小範囲で確認します。
- 最小再現コードを別コピーへ切り出す
- 識別子・値・コメントをマスキングする
- VB.NET構文と型Contextを比較する
- マスキング結果だけを共有する
結果側の匿名箇所は右クリックで個別解除できます。戻した元情報が本当に共有に必要か、送信前に再確認してください。
よくある質問
- .vb・.vbproj・Solutionを直接読み込めますか?
- 直接読込には対応していません。必要なVB.NETテキストを入力欄へ貼り付けます。現行ツールはRoslyn、MSBuild、Visual Studio、VB Compilerと同等の解析ではありません。
- Nothing、型変換、Async、LINQ、XML Literalの正しさも判定できますか?
- 判定しません。予約語や記号を保持しながらマスキングしますが、型、Control Flow、Thread、Query Provider、XML、Conditional Compilationの意味解析は行いません。BuildとTestで確認します。
- 入力したVB.NETコードはサーバーへ送信されますか?
- 入力とマスキング結果はブラウザ内で処理され、Develop Toolsのサーバーへ送信・保存されません。LocalStorageへ保存されるのは表示設定だけで、Mapping Viewや履歴保存もありません。