我現在面臨一個安全問題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