Html には、Javascript を少しだけ埋め込むことができます (たとえば、onclick
イベント ハンドラで定義)。
C# などの dotNet 言語を使用して Html ブラウザーを作成している場合、そのような Javascript フラグメントを実行するために使用できるテクノロジまたは API は何ですか?コード)?
実行するコードが Javascript ではなく C# スニペットである場合、それは簡単ですか、それとも難しいですか?
私のコードに異常な権限を持たせる必要のないテクニックはありますか? たとえば、require のようなメソッド(これ
CodeCompiler.FromSource
はSecurityPermissionFlag.UnmanagedCode
過剰に思えます。コードをコンパイルするのがなぜそれほど危険なのかわかりません)。クライアント側のコードだけでなくサーバー側のコードも制御する場合は、そのようなスクリプト フラグメントをクライアントではなくサーバー上でコンパイルし、それをプリコンパイル済みコードとしてクライアント側に送信して実行することも検討できます。そのようなコード (おそらく dotNet アセンブリ) をネットワーク経由でクライアントに送信し、クライアント側のコードにネットワークからクライアント側の RAM にそれを受信させ、それをクライアント側で呼び出す方法はありますか?クライアント側のディスク ドライブ上のファイル?
編集
最初の 3 つの質問に対する答えがあります。理由がわかりません。おそらく (これはあまり説得力のある理由ではないと思いますが) コンパイラがアンマネージ コードを使用して実装されているためです。おそらく「C#バージョン5」の時間枠で、マネージコードを使用してコンパイラを再実装すると、これが変更される可能性があります。いずれにせよ、理由が何であれ、それが現状のようであり、回避策はありません (他の同様の API ですが、必要な権限が少なくて済みます)。
私の残りの質問は、Assembly インスタンスをあるマシンから別のマシンに取得する方法です。Assembly.Load(byte[] rawAssembly)
時間があれば、信頼できないコードがメソッドを実行できるかどうかを調べます。