从ItemNotFoundUrl中删除额外的查询字符串参数

时间:2010-09-23 14:21:27

标签: sitecore

我正在使用sitecore 5.3并且需要能够在重定向到时删除sitecore插入(item =%2faeuaoeu& user = extranet \ Anonymous& site = thl)的额外查询字符串参数ItemNotFoundUrl中指定的404页面。

在Sitecore 6中我可以设置

<setting name="RequestErrors.UseServerSideRedirect" value="true"/>

并且它有效,但sitecore 5.3中不存在该设置

我需要它,所以我可以修复this asp.net vulnerability

编辑:Sitecore的官方回复已在此article

中进行了描述

1 个答案:

答案 0 :(得分:2)

除了找不到项目外,还有布局找不到具有相同行为的页面。

您需要创建Sitecore.Pipelines.HttpRequest.ExecuteRequest处理器的自定义版本,您可以在其中调用以下方法的自定义版本:

private void HandleItemNotFound(HttpRequestArgs args)
private void HandleLayoutNotFound(HttpRequestArgs args)

在这些方法中,您不会附加任何查询字符串:

// old code:
WebUtil.Redirect(WebUtil.AddQueryString(itemNotFoundUrl, new string[] { "item", localPath, "user", userName, "site", str4 }), false);
}

//new code:
WebUtil.Redirect(itemNotFoundUrl, false);

我建议您联系官方Sitecore技术支持以获得解决方案。