【问题标题】:Why does Sitecore seem to mangle parentheses in the query string?为什么 Sitecore 似乎破坏了查询字符串中的括号?
【发布时间】:2015-03-24 13:05:41
【问题描述】:

我注意到 Sitecore 和查询字符串中的括号有些奇怪。出于某种原因,Sitecore 似乎对查询字符串做了一些奇怪的事情。以下是重现此行为的步骤:

  1. 安装 Sitecore 7.5
  2. 创建一个名为 TestSublayout 的简单子布局
  3. 在 TestSublayout 上添加一个名为 litTest 的 ASP Literal 标签
  4. 在子布局后面的代码中,在页面加载事件中添加以下代码:litTest.Text = Request.QueryString.ToString();
  5. 在 Sitecore 中创建一个名为 TestItem 的简单项目并使用示例项目数据模板
  6. 在 TestItem 的演示详细信息中,将 TestSublayout 放在主占位符中。
  7. 构建 Visual Studio 项目并发布网站。
  8. 打开浏览器并转到http://example.com/testitem.aspx?selecteditem=surf(x)%203D%20Laminates

出于某种原因,Sitecore 对括号做了一些处理,这就是您在屏幕上看到的内容:

selecteditem=surf&%2340%3bx&%2341%3b+3D+层压板

我认为 Sitecore 正在做某事的原因是,我在非 Sitecore 项目上尝试了这些完全相同的步骤,并且效果很好。括号没有乱码或翻译成任何东西。正如我所期望的那样,它们就在字符串中:

selecteditem=surf(x)%203D%20Laminates

有什么想法吗?

【问题讨论】:

  • 您能否尝试将该 URL 放入 Sitecore 忽略的 URL 中并重新运行请求以查看管道中是否存在干扰?
  • 好吧,如果我这样做了,我会收到 404 错误。没有名为 testitem.aspx 的物理 ASPX 页面。
  • 是的,你是对的,抱歉。发生了一些非常奇怪的事情,URL 解码该值会导致 selecteditem=surf(x) 3D Laminates 如果您从查询字符串中删除括号会发生什么?
  • 这和XSS防护无关吧?
  • 也可以在这里提出最初的问题stackoverflow.com/questions/29220108/…

标签: asp.net sitecore query-string sitecore7 sitecore7.5


【解决方案1】:

我从 Sitecore 发现这是一个已知问题,已在 7.2 版中修复,但尚未合并到 7.5 版中。所以他们给了我一个补丁来解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多