【问题标题】:Sitecore 7.2 Item Web Api - Unable to PUT html textSitecore 7.2 项目 Web Api - 无法放置 html 文本
【发布时间】:2014-10-24 20:18:24
【问题描述】:

我正在尝试使用 Sitecore ItemWebApi 1.2 更新(使用 PUT 操作)带有“富文本”字段的站点核心项目。我遇到了服务器说的问题

"A potentially dangerous Request.Form value was detected from the client"

我可以在 web.config 中执行 validationRequest=false。但这将禁用对所有不理想的请求的验证。有没有办法在不使用validationReques = false的情况下使用ItemWebApi保存html文本?似乎对于您可以使用@Page 的aspx 页面。不确定在这种情况下可以在哪里配置类似的东西。

【问题讨论】:

  • validationRequest=false 是一个好主意,如果客户提交任何形式的表格并无恶意地使用具有潜在危险的字符串,您不希望显示错误页面。当然不允许 XSS,逃避 html karakters。

标签: sitecore asp.net-web-api sitecore7.2


【解决方案1】:

可能您已经自己想出了答案,但为了我们社区同胞的利益,我在这里发布答案。

实际上,我从上周开始就遇到了类似的问题,但是由于您的问题,我找到了解决方案。 默认情况下,Sitecore nowdays 自带

<pages validateRequest="false">

但除非我们遵循,否则它是无效的

<httpRuntime requestValidationMode="2.0"/>

它也在Sitecore KB article 和另一个stack overflow answer 中表示。

问候 维沙尔·古普塔

【讨论】:

    【解决方案2】:

    在发送到服务器之前,我在客户端进行了双重转义,并使用自定义项目 Web api 处理器进行了双重转义,以基本上为这个 ajax 调用实现相同的效果。这样,我不必在整个应用程序范围内关闭验证,而必须在所有页面上添加 validateRequest=true。关闭默认 html 验证也意味着我们团队中的每个其他开发人员都需要知道 html 验证已关闭,他们必须在顶部添加特殊的 xml 才能启用它。缺少这将使我们的网站不安全。

    【讨论】:

      猜你喜欢
      • 2014-10-12
      • 2016-02-28
      • 1970-01-01
      • 2015-07-18
      • 2018-09-18
      • 1970-01-01
      • 2019-11-23
      • 2014-04-24
      • 1970-01-01
      相关资源
      最近更新 更多