asp.net - 篡改页面扩展名时出现404页面

标签 asp.net iis-7 webforms http-status-code-404 sitecore

我有一个 Sitecore 解决方案,我们可以在其中处理 404 请求。

我们通过在 web.config 中设置“ErrorPage”和“ItemNotFoundUrl”来做到这一点:

<setting name="ErrorPage" value="/sitecore/service/error.aspx" />

还有

<setting name="ItemNotFoundUrl" value="/Global/ErrorPages/404" />

现在,当我们编辑页面名称时,这就起作用了。因此,如果我们有 www.domain.com/mypage.aspx ,并转到不存在的 www.domain.com/mysdfsa.aspx ,它将显示我们的错误页面。

但是,如果我们这样做:

www.domain.com/mypage.zip/www.domain.com/mypage.gosfgfgs

它给出了 IIS 错误:

Error Summary
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

我尝试了什么?

我们至少需要将其制作为 ZIP 文件。

  • 确保 .ZIP 已添加到 IIS 和 Sitecore MIME 类型
  • 在 ExecuteRequest 管道之前 Hook 并尝试重定向(这永远不会被调用,因为 IIS 在我们执行请求之前给出错误页面)

有什么想法吗? :-) 谢谢

最佳答案

我认为在<preprocessRequest> pipeline 有一个用于 Sitecore 处理的扩展的处理器。您应该尝试更新:

<processor type="Sitecore.Pipelines.PreprocessRequest.FilterUrlExtensions, Sitecore.Kernel">
  <param desc="Allowed extensions (comma separated)">aspx, ashx, asmx</param>
  <param desc="Blocked extensions (comma separated)">*</param>
  <param desc="Blocked extensions that stream files (comma separated)">*</param>
  <param desc="Blocked extensions that do not stream files (comma separated)"></param>
</processor>

关于asp.net - 篡改页面扩展名时出现404页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12109573/

相关文章:

c# - SSL设置需要证书和开发

asp.net - 用于 Rest API 的 SSL

c# - ASP.NET 无需询问就知道我的密码?

asp.net - 重定向后进入 asp.net

c# - 使用Session变量来防止未经授权的访问是否安全

.net - 模块 "aspnetcorev2.dll"加载失败

c# - 在 gridview 中分页..在 webform 中

asp.net - 使用 ITextSharp 流式传输分割的 pdf 以将其存储在 Azure 中

css - 在折叠导航栏时隐藏的导航栏中显示图像

c# - JWT 如何添加自定义声明和解码声明