如何在 PHP 中设置使用 HttpOnly Cookie

2022-08-30 07:38:28

如何将我的 Cookie 设置为 ?PHP appsHttpOnly cookies


答案 1

对于 Apache 上的 PHP 自己的会话 Cookie:
将其添加到您的 Apache 配置中,或者.htaccess

<IfModule php5_module>
    php_flag session.cookie_httponly on
</IfModule>

这也可以在脚本中设置,只要在 之前调用即可。session_start()

ini_set( 'session.cookie_httponly', 1 );

答案 2
  • 对于您的 Cookie,请参阅此答案。
  • 有关 PHP 自己的会话 cookie(默认情况下),请参阅@richie的答案PHPSESSID

setcookie()setrawcookie() 函数引入了布尔参数,早在 PHP 5.2.0 的黑暗时代,就使这变得简单明了。只需根据语法将第 7 个参数设置为 truehttponly

为简洁起见,简化了函数语法

setcookie(    $name, $value, $expire, $path, $domain, $secure, $httponly )
setrawcookie( $name, $value, $expire, $path, $domain, $secure, $httponly )

在 PHP < 8 中,指定要保留为默认值的参数。NULL

在 PHP >= 8 中,您可以从使用命名参数中受益。请参阅有关命名参数的问题

setcookie( $name, $value, httponly:true )

也可以使用较旧的较低级别的 header() 函数:

header( "Set-Cookie: name=value; HttpOnly" );

您可能还需要考虑是否应该设置该参数。Secure


推荐