MVC5のファイル.cshtml
にC#6の機能(?.
など)を使用するには、need to include csc.exe and related files in your website's bin folder when you deploy itを使用します。さて、私はその理由を理解することができます。Webサイトのbinフォルダにcsc.exeを含めることのセキュリティ上の懸念
しかし、これはつまり、完全なC#コンパイラがWebサーバー上にあり、Webユーザーと同じアクセス許可を持っていることを意味します。これは私が躊躇することです - 理論的には、攻撃者はそれを私のウェブサイトであるかのように任意のコードを実行するために使用することができます。
これは実際に有効なセキュリティ上の懸念事項ですか?
私は両側を見ることができます。一方で、それはあなたがCSCの実行可能ファイルに任意のコードを渡すことができるようにするために、任意のコードすでにを実行する能力を必要とするだろうということが可能です。一方、私は、それが私たちが書くことは決してしたくないコードを実行して、内部のウェブサイト設定(データベース接続文字列のような)にアクセスするのに使用されているアクセスを見ることができます。
私は心配すべきか、これは安全だと考えていますか?
ハッカーがこれから得られる唯一の利点は、コンパイルされたバイナリプログラムをアップロードするのではなく、あなたのWebサイトにソースコードをアップロードし、ローカルでコンパイルできることです。 ファイアウォールがバイナリファイルをサーバーにアップロードするのをハッカーがブロックする可能性があるのに対し、テキストのみであるソースコードをアップロードできる可能性があります。私はこれが純粋に理論上のリスクだと思っていますが、コンパイラを実行するためにシステムに十分なアクセス権をすでに取得していれば、はるかに危険な他のものを実行することもできます。 – bikeman868