带有SameSite Cookie的Chrome上的Symfony iframe日志记录问题

时间:2020-03-20 07:40:04

标签: symfony session cookies samesite

我有一个A站点和一个B站点。两者都在HTTPS上,都在不同的域上。 一个运行Symfony的站点在其中准备了一个登录页面,该页面通过B页上的iframe包括在内。 除了启用了#same-site-by-default-cookies标志(chrome:// flags /#same-site-by-default-cookies)的Chrome浏览器外,日志记录过程在所有主流浏览器上均可正常运行。如果我在Chrome上禁用了此标志,那么它也可以正常工作。

有人知道我该怎么做才能解决它?我可能需要将Cookie内的SameSite标志设置为“无”,但是我不知道它涉及哪个Cookie以及在哪里进行更改。

我正在使用:

  • Symfony 4.4.2
  • symfony /用户捆绑包2.1.2的朋友
  • PHP 7.2

我的认罪: framework.yaml

framework:
secret: '%env(APP_SECRET)%'
translator: { fallbacks: [pl] }
form: { enabled: true }
validation: { enable_annotations: true }
default_locale: '%locale%'
csrf_protection: true

# Enables session support. Note that the session will ONLY be started if you read or write from it.
# Remove or comment this section to explicitly disable session support.
session:
    handler_id: Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler

#esi: true
fragments: ~
http_method_override: true
php_errors:
    log: true

security.yaml

providers:
    fos_userbundle:
        id: fos_user.user_provider.username

firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false
    main:
        switch_user:            true
        pattern: ^/
        context:            user
        remember_me:
            #key:      "%secret%"
            secret: "%secret%"
            lifetime: 31536000 # 365 days in seconds
            path:     /
            domain:   ~ # Defaults to the current domain from $_SERVER
            token_provider: Symfony\Bridge\Doctrine\Security\RememberMe\DoctrineTokenProvider
        form_login:
            provider: fos_userbundle
            # csrf_token_generator: security.csrf.token_manager
            # if you are using Symfony < 2.8, use the following config instead:
            # csrf_provider: form.csrf_provider
            always_use_default_target_path: true
            default_target_path: /after-login
            success_handler: authentication_handler
            failure_handler: authentication_handler
        oauth:
            resource_owners:
                facebook:           "/loginSocial/check-facebook"
                google:             "/loginSocial/check-google"
            login_path:        /loginSocial
            use_forward:       false
            failure_path:      /loginSocial
            oauth_user_provider:
                service: fm_user_provider
            always_use_default_target_path: true
            default_target_path: /after-login
        logout:
            target: fmUserAfterLogout
            success_handler: logout_handler
        anonymous:    true

1 个答案:

答案 0 :(得分:0)

framework.yaml

添加选项“ cookie_samesite”

session:
    cookie_samesite: none

Symfony Doc