如何禁用 ASP.NET Core 的 "Razor Pages"?
How do I disable ASP.NET Core's "Razor Pages"?
我们使用 ASP.NET Core 的 "MVC",而不是新的 "Razor Pages"。
我知道默认情况下它们从 /Pages
获得服务,所以 在运行时 (!!) 我把一些剃刀页面放在那里看看会发生什么 - 并且令我惊讶的是,他们没有做任何进一步的事情就得到了服务!
这对我们来说是一个主要的安全风险。在生产服务器上,一些恶意行为者可能会将 razor 页面放入正确的目录,然后造成相当大的破坏。
我以为它们可以被禁用,但一无所获。
如何才能完全禁用 "Razor Pages"?
@CodeCaster 上面的评论说它们不能被禁用,所以我想到了一个 hacky 解决方法 - 将目录更改为随机目录:
services
.AddMvc();
.WithRazorPagesRoot("/" + generateRandomString());
虽然这并非万无一失 - 它不会阻止有足够决心破坏您的 dll 的人。
(如果可以禁用它们,请添加您的答案,我会接受。)
我们使用 ASP.NET Core 的 "MVC",而不是新的 "Razor Pages"。
我知道默认情况下它们从 /Pages
获得服务,所以 在运行时 (!!) 我把一些剃刀页面放在那里看看会发生什么 - 并且令我惊讶的是,他们没有做任何进一步的事情就得到了服务!
这对我们来说是一个主要的安全风险。在生产服务器上,一些恶意行为者可能会将 razor 页面放入正确的目录,然后造成相当大的破坏。
我以为它们可以被禁用,但一无所获。
如何才能完全禁用 "Razor Pages"?
@CodeCaster 上面的评论说它们不能被禁用,所以我想到了一个 hacky 解决方法 - 将目录更改为随机目录:
services
.AddMvc();
.WithRazorPagesRoot("/" + generateRandomString());
虽然这并非万无一失 - 它不会阻止有足够决心破坏您的 dll 的人。
(如果可以禁用它们,请添加您的答案,我会接受。)