Kentico 10在Windows Server上运行。 我在事件日志中每小时收到以下错误数十次: 缺少CSRF Cookie。
错误仅发生在我的生产服务器上,而不是任何开发环境中,并且我无法找到自己手动重现它的方法(我只是在日志中看到它)。这让我相信它与生产站点的一些奇怪的传入流量有关(而不是我们的应用程序代码本身的问题)
此问题也很难找到,因为列出的事件网址始终显示为:/cmsmessages/error.aspx?aspxerrorpath=/cmspages/portaltemplate.aspx
我唯一的线索是所有用户代理都有某种形式的Microsoft Office或ExchangeService产品名称:
可能是一些奇怪的"受保护的视图"来自Office应用程序的浏览器加载页面并拒绝cookie?有关如何解决此错误的任何想法?
答案 0 :(得分:0)
我以前见过这个 - 因为我记得它的外部消息来源在你的域名上找东西。通过您看到的代理商,我说它与交换/电子邮件有关(也许是人们打开您发送的电子邮件?)。
有人在此处描述了类似的问题:https://devnet.kentico.com/questions/csrf-attack-detected-on-live-site-when-using-smart-search
虽然不理想,但您可以使用应用程序设置键<add key="CMSEnableCsrfProtection" value="false" />
禁用CSRF。
答案 1 :(得分:0)
查看正在记录的UA,这似乎与Microsoft's EWS API有关。看起来很奇怪,这些请求会打到你的Kentico网站,因为这是你不希望发生的事情。
Kentico的CSRF保护默认会阻止任何没有正确CSRF令牌的POST请求。禁用CSRF会使您的用户和网站产生风险,因此我强烈建议您将其启用。
如前所述,您应该检查IIS日志以获取有关这些请求的更多信息,主要是实际的请求URL。如果您仍然无法确定这些请求的来源并且不期望这些请求,我建议您设置一个规则来阻止它们。这可以使用WAF或IIS完成。