基本的に私の.NETアプリケーションでURLを開こうとしています。デフォルトのブラウザでURLを開くための安全な方法は何ですか?
などしたがって、私は彼らがメタ文字を注入することにより、システム内のコマンドを実行したくない、Process.Start("http://www.google.com")
をしかし、私の場合にはURLが外部ユーザーによって制御することができます。これは、実行することによって容易に達成することができます
だから、安全な方法は、次のようになります。
- 読むレジストリとで
New Process()
を作成し、デフォルトのブラウザ - 何を参照してください。デフォルトのブラウザの実行可能
- サプライこれを実装する前に、プロセス
を起動
私は入力のフィルタリングを実装するに熱心でないんだけど、それは代わりに、それを解析することによって有効なHTTPのURLを確認していないのはなぜ
私はprocess.startが "http://www.google.com && calc.exe"や "http://xxx.com -Profile Manager"などの攻撃に対して脆弱だと思ったが、明らかにそうではない。 –
@Slough、いいえ、私はそれがfile://c:/windows/system32/cmd.exeまたはそれらの行に沿った何かであると信じています – JaredPar
これは古典的なShell()呼び出しよりも優れた実装方法です。 –