如何在Laravel 5.4中的cookie上设置安全标志

Kes*_*ari 8 php security cookies laravel-5

通过HTTPS访问内容时,我想为cookie数据设置安全标志。

cookie用于整个应用程序,因此需要进行全局配置以保护所有cookie。

mad*_*scu 12

您需要使用覆盖默认设置session_set_cookie_params,将$ secure标志设置为true,

void session_set_cookie_params ( int $lifetime [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]] )
Run Code Online (Sandbox Code Playgroud)

php.net上的更多信息

在laravel中,您需要更改config / session.php配置,将secure标志设置为true

/*
|--------------------------------------------------------------------------
| HTTPS Only Cookies
|--------------------------------------------------------------------------
|
| By setting this option to true, session cookies will only be sent back
| to the server if the browser has a HTTPS connection. This will keep
| the cookie from being sent to you if it can not be done securely.
|
*/

'secure' => true,
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以如下所示在文件中设置secure true的值config/session.php

'secure' => env( 'SESSION_SECURE_COOKIE', true ),
Run Code Online (Sandbox Code Playgroud)

  • 如果 .env 文件包含“SESSION_SECURE_COOKIE=false”,这行代码实际上可能不会将“secure”设置为“true”。传递给“env”帮助器方法的第二个参数只是将默认值设置为“true”,并且仅当 .env 文件中不存在“SESSION_SECURE_COOKIE”环境变量时才使用。 (2认同)