【发布时间】:2018-02-23 08:54:46
【问题描述】:
在我网站的购物篮中,我需要允许来自第三方服务的 XML 表单 POST。
我能找到的可能解决方案是针对 webforms 和
有人知道在 MVC 中使用控件<umbraco:DisableRequestValidation runat="server"/> 的等效方法吗?
【问题讨论】:
标签: asp.net-mvc umbraco
在我网站的购物篮中,我需要允许来自第三方服务的 XML 表单 POST。
我能找到的可能解决方案是针对 webforms 和
有人知道在 MVC 中使用控件<umbraco:DisableRequestValidation runat="server"/> 的等效方法吗?
【问题讨论】:
标签: asp.net-mvc umbraco
出于安全原因,我建议尝试在包含 xml 内容的属性上使用 [AllowHtml]
所以说你的 viewmodel 有属性调用 ThirdPartyContent 这将有 xml:
public class VM
{
public string Name { get; set; }
[AllowHtml]
public string ThirdPartyContent { get; set; }
}
此隐式状态您知道哪个属性将包含潜在的恶意内容(即尖括号)
[ValidateInput(false)] 可以解决问题,但会假设所有属性都可能包含可能不是好事的 xml 内容
更多信息查看此 SO 答案,其中说明了 [AllowHtml] 和 [ValidateInput(false)] 之间的区别
【讨论】:
我找到了自己问题的答案。
可以在 RenderMvcControllers 上设置[ValidateInput(false)] 注释。所以你可以根据文档类型来做这件事,这还不错。
我会在这里留下答案,以防其他人需要做同样的事情。
【讨论】: