4

我已经建立了一个带有登录系统的网站。准备好后,我使用 Acunetix 对其进行了扫描,但收到以下消息:

没有设置 HttpOnly 标志的会话 Cookie 没有设置安全标志的会话 Cookie(我想这只是在我有 SSL 连接的情况下)

所以我的问题是,如何为我的所有 Session 数据设置 HttpOnly 标志?当我登录用户时,我只是在使用会话。我用他们的用户 ID 号给他们一个会话,然后我使用那个用户 ID 获取数据。

有什么简单的方法可以设置所有会话 HTTPOnly 并保护它们,所以没有人可以触摸它们?

4

3 回答 3

8

您可以更改 php.ini 中的设置,也可以通过ini_set()调用 changesession.cookie_securesession.cookie_httponlyvalues 来更改true.

或者,您可以session_set_cookie_params()在开始会话之前使用以获得所需的效果。

http://us3.php.net/manual/en/function.session-set-cookie-params.php

于 2012-10-25T18:40:28.603 回答
1

你应该查看这个优秀的网站来解决这个问题。归结为在 php.ini 的会话部分中设置它(或通过适当的运行时函数):

session.cookie_httponly = True
于 2012-10-25T18:40:15.517 回答
-1

您也可以在使用 PHP 时将httponly标志设置为:falsesetcookie

// params: name, value, expiration, path, domain, secure, http-only
setcookie('session-cookie-key', 'data', 0, '/', 'example.com', true, false);
于 2017-04-19T20:57:53.590 回答