后退按钮注销symfony2 php错误

时间:2014-06-24 14:15:20

标签: php symfony button logout back

我正在开发一个Symfony2应用程序,我遇到了问题。

当我退出我的应用程序时,它会正确执行,但如果我按下浏览器的后退按钮,我将返回到已记录的页面。

如果我写URL去转到此页面,我就不能。

提前致谢

这是我的Security.yml

security:
encoders:
    Simple\ProfileBundle\Entity\User:
        algorithm:        sha1
        encode_as_base64: false
        iterations:       1


role_hierarchy:
    ROLE_ADMIN:       [ROLE_USER]


providers:
    main:
        entity:
            class: Simple\ProfileBundle\Entity\User
            property: username

firewalls:
    secured_area:

        pattern:    ^/
        anonymous: ~
        form_login:
            login_path:  login
            check_path:  login_check
            always_use_default_target_path: true
            default_target_path: /logged/portada
        logout:
            path:   /logout
            target: /portada
access_control:
       - { path: ^/logged, roles: ROLE_ADMIN }

1 个答案:

答案 0 :(得分:0)

我刚刚在我自己的Symfony 2.3应用程序中成功测试了你的场景,发现它实际上是一个来自浏览器缓存的安全漏洞(不是框架问题,因为它不受框架的控制。 )

这是discussion around the issue。一般(但不完整)的解决方案是发送" Expire"当您使用后退按钮行为时,浏览器可能(或可能不)注意的标题。 Here's the Symfony docs for HTTP Cache headers

我还没有在2.5。*环境中测试它,所以这可能已在更高版本的Symfony中解决。