Asp.net core 如何禁用ASP.NET Core';s";剃须刀页面;?
我们使用ASP.NET核心的“MVC”,但不是新的 我知道默认情况下,他们是从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的评论说它们不能被禁用,所以我想到了一个黑客解决方法-将
/Pages
获得服务的,所以在运行时(!!)我把一些剃须刀页面放在那里,看看会发生什么-令我惊讶的是,他们没有做任何进一步的事情就得到了服务
这对我们来说是一个重大的安全风险。在生产服务器上,一些恶意参与者可能会将razor页面放入正确的目录,然后造成相当大的损害
我以为他们可能会残疾,但对此却一无所获
我怎样才能完全禁用“剃须刀页面”?上面@CodeCaster的评论说它们不能被禁用,所以我想到了一个黑客解决方法-将目录更改为随机目录:
services
.AddMvc();
.WithRazorPagesRoot("/" + generateRandomString());
但这并不是万无一失的——它不会阻止有人下定决心弄乱你的DLL
(如果可以禁用,请添加您的答案,我将接受。)我不确定是否可以禁用,但。。。如果有人对您的服务器具有文件系统访问权限,您就会遇到更大的问题。他们也可以覆盖您站点的DLL。@CodeCaster这是真的,但这可能不是他们想要做的。此外,当他们可以在网站上添加一个文本文件,获取一些东西,然后删除文件时,为什么要这样做呢。。。又快又容易。在共享主机中,您无法控制生产机器,因此这是一个真正的问题,而不是理论问题。我同意你的看法。是的,但是除了Razor页面,他们还可以删除一个
Global.asax
,它可以在每个请求上运行。所以,虽然我同意这是一个真正的问题,而不是一个理论问题,但这不是一个你可以轻易回避的问题。一旦某个恶意参与者访问了您的服务器,您几乎无法采取任何措施来保护您的站点免受他们的攻击。@CodeCaster Wow忘记了Global.asax
仍在Core中使用!你的评论让我的妄想症恶化了10倍!谢谢!:-)ASP.NET核心应用程序中未使用Global.asax。。。