【发布时间】:2014-03-19 15:38:20
【问题描述】:
众所周知,Magento 1.8.x 和 Varnish 出现了一些小问题。 Magento 团队为大多数前端表单和操作添加了支持“form_key”。真的很棒,大家都应该把安全放在第一位。然而,它会导致 FPC 系统作为 Varnish 出现问题(关于此的精彩文章在这里 http://www.supportdesk.nu/blog/110-magento-1-8-form-keys-impact-on-fpc)。 Magento 上的许多 FPC 系统通过在从缓存加载页面期间放置一个占位符并替换“form_key”来解决它。它适用于集成到 Magento 中的 PHP 系统,但不适用于 Varnish 等外部系统。所以我的问题如下:
是否有足够好的解决方案将 FPC 用作 Varnish 和 Magento 1.8.x?
我认为跟随
1) 防止在前端使用“form_key”,有很多方法可以做到这一点(例如:https://bitbucket.org/supportdesk_nl/turpertine-formkey-workaround/src/574ff1851618dc0e76e4274001fbf3efb89c99f6/app/code/community/SupportDesk/CartFormKey/Model/Observer.php?at=master)。然而,这是 hack,一般来说并不好。此外可能是安全风险?你这是什么意思?
2) 通过 AJAX 加载“form_key”并用 JavaScript 代码替换所有链接和表单输入。我不确定它在技术上是否可以实现(例如:替换代码 sn-ps 像 onclick="setLocation('....&form_key=XXX');" 太难了),它会导致太多问题和不兼容各种扩展。
3) 不要使用清漆。是的,这将是一个解决方案,但请暂时避免使用它们。
4) 你的建议???
非常感谢您的回答。
【问题讨论】:
标签: magento varnish magento-1.8