首页 > 解决方案 > 如何在 Symfony 4 会话中设置安全和 httponly 属性

问题描述

我想在 Symfony 4 中创建一个安全的 PHP 会话

我在Symfony 文档API 文档中查找信息,但找不到任何关于我的问题的参考。

在纯 PHP 中,我曾经执行以下操作来创建安全的 PHP 会话:

$session_name = 'session';
$secure = true;
$httponly = true;

$cookieParams = session_get_cookie_params();
session_set_cookie_params(
  $cookieParams["lifetime"], 
  $cookieParams["path"], 
  $cookieParams["domain"], 
  $secure, 
  $httponly
);

session_name($session_name);
session_start();

你如何在 Symfony 4 中做类似的事情?以下代码不起作用:

$session->set('lifetime', 0);
$session->set('secure', true);
$session->set('httponly', true);

标签: phpsymfonysession

解决方案


正如 sam 和正确的文档所指出的那样

在 Symfony 框架中,这些选项应该设置在framework.yaml

    session:
       handler_id: ~
       cookie_secure: true
       cookie_httponly: true

推荐阅读