会话cookie http &secure flag - 你如何设置这些?

2022-08-30 13:46:29

刚刚收到安全审计的结果 - 除了两件事,一切都很清楚

不带 http 标志的会话 Cookie。

未设置安全标志的会话 Cookie。

该应用程序是用php编码的,修复建议是:

  1. 使用仅 http 标志设置会话 Cookie
  2. 使用安全标志设置会话 Cookie

我已经看过一些例子,但并不完全了解如何在Linux服务器上实现。我无权访问.ini文件。是否可以在 htaccess 文件中设置这些内容?

或者,如何在代码中以及在代码中的什么位置实现?


答案 1

您可以在发送标头之前设置它们。只需在代码中添加下面的这些行即可。

<?php
// **PREVENTING SESSION HIJACKING**
// Prevents javascript XSS attacks aimed to steal the session ID
ini_set('session.cookie_httponly', 1);

// **PREVENTING SESSION FIXATION**
// Session ID cannot be passed through URLs
ini_set('session.use_only_cookies', 1);

// Uses a secure connection (HTTPS) if possible
ini_set('session.cookie_secure', 1);

答案 2

由于您请求了 .htaccess,并且此设置PHP_INI_ALL,因此只需将其放在 .htaccess 中:

php_value session.cookie_httponly 1
php_value session.cookie_secure 1

请注意,在此之后,会话 Cookie 将仅与 https 请求一起发送。如果您在不安全的http页面中丢失了会话,这可能会让您感到惊讶(但就像评论中指出的那样,这实际上是首先配置的重点...)。


推荐