我现在面临一个安全问题ESI上Symfony2的(2.2)例如,要求用户进行日志记录并具有角色ROLE_USER。安全ESI问题与Symfony2的
问题是,每个人都可以通过在导航器的地址栏中写入其URL来显示ESI ...因此,一个人可以访问ESI(在需要管理员角色的操作中调用) ,甚至没有登录!
例如,我的ESI“SybioWebsiteBundle:控制器:showEsiAction”,可在此网址阅读: http://mywebsiteurl.com/_proxy?_path=id%3D1%26slug%3Dlorem%26locale%3Dfr%26ranks%3D1-2-3-5-6-7%26page%3D1%26isPhotograph%3D1%26_format%3Dhtml%26_controller%3DSybioWebsiteBundle%253AAlbum%253AshowEsi
这ESI只应通过记录用户可见的:他们去的showAction和嫩枝模板中,这个ESI被称为......但所有人都可以通过这个“问题”作弊和阅读!
我搜索的解决方案,我得到了一个真难看: 检查,如果用户在ESI的动作,记录......没关系,但我使用HTTP缓存验证优化我的网站加载(记忆) 。所以如果我选择这个解决方案,我需要添加一个额外的ETag来测试用户角色,每当ESI用户没有用户访问时清除ESI缓存,并显示一个空的响应,如果有人登录,清除它再次显示正常的看法,等等...
我现在想要欺骗的人将不常见,所以它可能是一个可喜的解决方案......理论上,缓存不会一直清除,因为他们,幸运!
但我想知道你是否有另一种解决方案?谢谢 !
不错的答案,谢谢! – Sybio