Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 如何禁用ASP.NET Core';s";剃须刀页面;?_Asp.net Core_Razor Pages_Asp.net Core 2.1 - Fatal编程技术网

Asp.net core 如何禁用ASP.NET Core';s";剃须刀页面;?

Asp.net core 如何禁用ASP.NET Core';s";剃须刀页面;?,asp.net-core,razor-pages,asp.net-core-2.1,Asp.net Core,Razor Pages,Asp.net Core 2.1,我们使用ASP.NET核心的“MVC”,但不是新的 我知道默认情况下,他们是从/Pages获得服务的,所以在运行时(!!)我把一些剃须刀页面放在那里,看看会发生什么-令我惊讶的是,他们没有做任何进一步的事情就得到了服务 这对我们来说是一个重大的安全风险。在生产服务器上,一些恶意参与者可能会将razor页面放入正确的目录,然后造成相当大的损害 我以为他们可能会残疾,但对此却一无所获 我怎样才能完全禁用“剃须刀页面”?上面@CodeCaster的评论说它们不能被禁用,所以我想到了一个黑客解决方法-将

我们使用ASP.NET核心的“MVC”,但不是新的

我知道默认情况下,他们是从
/Pages
获得服务的,所以在运行时(!!)我把一些剃须刀页面放在那里,看看会发生什么-令我惊讶的是,他们没有做任何进一步的事情就得到了服务

这对我们来说是一个重大的安全风险。在生产服务器上,一些恶意参与者可能会将razor页面放入正确的目录,然后造成相当大的损害

我以为他们可能会残疾,但对此却一无所获


我怎样才能完全禁用“剃须刀页面”?

上面@CodeCaster的评论说它们不能被禁用,所以我想到了一个黑客解决方法-将目录更改为随机目录:

services
  .AddMvc();
  .WithRazorPagesRoot("/" + generateRandomString());
但这并不是万无一失的——它不会阻止有人下定决心弄乱你的DLL


(如果可以禁用,请添加您的答案,我将接受。)

我不确定是否可以禁用,但。。。如果有人对您的服务器具有文件系统访问权限,您就会遇到更大的问题。他们也可以覆盖您站点的DLL。@CodeCaster这是真的,但这可能不是他们想要做的。此外,当他们可以在网站上添加一个文本文件,获取一些东西,然后删除文件时,为什么要这样做呢。。。又快又容易。在共享主机中,您无法控制生产机器,因此这是一个真正的问题,而不是理论问题。我同意你的看法。是的,但是除了Razor页面,他们还可以删除一个
Global.asax
,它可以在每个请求上运行。所以,虽然我同意这是一个真正的问题,而不是一个理论问题,但这不是一个你可以轻易回避的问题。一旦某个恶意参与者访问了您的服务器,您几乎无法采取任何措施来保护您的站点免受他们的攻击。@CodeCaster Wow忘记了
Global.asax
仍在Core中使用!你的评论让我的妄想症恶化了10倍!谢谢!:-)ASP.NET核心应用程序中未使用Global.asax。。。