在网站的bin文件夹

时间:2016-07-19 23:15:25

标签: c# .net asp.net-mvc security

为了在MVC5下的?.文件中使用C#6功能(如.cshtml),您need to include csc.exe and related files in your website's bin folder when you deploy it。好的,我能理解其中的原因。

然而,现在这意味着我的网络服务器上有一个完整的C#编译器,具有与网站用户相同的权限。这让我犹豫不决 - 理论上,攻击者可以使用它来运行任意代码,就像它是我的网站一样。

这实际上是一个有效的安全问题吗?

我可以看到双方:一方面,你可能需要能够执行任意代码已经,以便能够将任意代码传递给csc可执行文件。另一方面,通过运行我们永远不想写的代码,我可以看到对它的访问被用来访问内部网站设置(比如数据库连接字符串)。

我应该担心,还是认为这是安全的?

1 个答案:

答案 0 :(得分:2)

据我了解,MVC Razor视图实际上是任意C#代码,在任何更改后都会根据需要重新编译。

因此,任何有权访问网站服务器的黑客都可以在任何版本的MVC中运行任意C#代码。

我同意这感觉就像风险一样,因为它是,但另一方面,你可以在不重新发布整个网站的情况下更改视图。