Bob*_*son 6 .net c# security asp.net-mvc
为了在MVC5下?.的.cshtml文件中使用C#6功能(如),在部署时需要在网站的bin文件夹中包含csc.exe和相关文件.好的,我能理解其中的原因.
但是,现在这意味着我的网络服务器上有一个完整的C#编译器,具有与网站用户相同的权限.这让我犹豫不决 - 理论上,攻击者可以使用它来运行任意代码,就好像它是我的网站一样.
这实际上是一个有效的安全问题吗?
我可以看到双方:一方面,它可能是你需要执行任意代码的能力已经为了能够任意代码传递给CSC可执行文件.另一方面,通过运行我们永远不想写的代码,我可以看到对它的访问被用来访问内部网站设置(如数据库连接字符串).
我应该担心,还是认为安全?
小智 2
据我了解,MVC Razor 视图实际上是任意 C# 代码,在任何更改后都会根据需要重新编译。
因此,任何有权访问网站服务器的黑客都可以在任何版本的 MVC 中运行任意 C# 代码。
我同意这感觉像是一种风险,因为确实如此,但另一方面,您可以获得无需重新发布整个网站即可更改视图的优势。