次の方法で共有


セキュリティとオンザフライコード生成

一部のライブラリは、コードを生成し、それを実行して呼び出し元に対して何らかの操作を実行することによって動作します。 基本的な問題は、信頼度の低いコードに代わってコードを生成し、より高い信頼で実行することです。 呼び出し元がコード生成に影響を与える可能性がある場合、問題は悪化するため、安全と見なすコードのみが生成されるようにする必要があります。

生成するコードを常に正確に把握する必要があります。 つまり、引用符で囲まれた文字列 (予期しないコード要素を含めないようにエスケープする必要があります)、識別子 (有効な識別子であることを確認するために確認する必要があります) など、ユーザーから取得するすべての値を厳密に制御する必要があります。 識別子は、識別子に奇妙な文字が含まれるようにコンパイル済みアセンブリを変更できるため、危険な場合があります。これはおそらくそれを壊します (これはセキュリティの脆弱性になることはほとんどありません)。

リフレクション出力を使用してコードを生成することをお勧めします。これは、多くの場合、これらの問題の多くを回避するのに役立ちます。

コードをコンパイルするときは、悪意のあるプログラムが何らかの方法でコードを変更できるかどうかを検討します。 コンパイラがソース コードを読み取る前、またはコードが .dll ファイルを読み込む前に、悪意のあるコードがディスク上のソース コードを変更する可能性がある期間は少なくなっていますか? その場合は、必要に応じて、ファイル システムのアクセス制御リストを使用して、これらのファイルを含むディレクトリを保護する必要があります。

こちらも参照ください