2016-07-19 14 views
6

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の実行可能ファイルに任意のコードを渡すことができるようにするために、任意のコードすでにを実行する能力を必要とするだろうということが可能です。一方、私は、それが私たちが書くことは決してしたく​​ないコードを実行して、内部のウェブサイト設定(データベース接続文字列のような)にアクセスするのに使用されているアクセスを見ることができます。

私は心配すべきか、これは安全だと考えていますか?

+0

ハッカーがこれから得られる唯一の利点は、コンパイルされたバイナリプログラムをアップロードするのではなく、あなたのWebサイトにソースコードをアップロードし、ローカルでコンパイルできることです。 ファイアウォールがバイナリファイルをサーバーにアップロードするのをハッカーがブロックする可能性があるのに対し、テキストのみであるソースコードをアップロードできる可能性があります。私はこれが純粋に理論上のリスクだと思っていますが、コンパイラを実行するためにシステムに十分なアクセス権をすでに取得していれば、はるかに危険な他のものを実行することもできます。 – bikeman868

答えて

2

私が理解しているように、MVC Razorビューは任意の変更後にオンデマンドで再コンパイルされる任意のC#コードで効果的です。

ウェブサイトサーバーにアクセスできるハッカーなら、任意のバージョンのMVCで任意のC#コードを実行できます。

私はそれが危険であると感じることに同意しますが、その一方で、ウェブサイト全体を再公開せずにビューを変更できるという利点があります。

関連する問題