会话Cookie没有设置HttpOnly标志

时间:2012-10-25 18:35:55

标签: php javascript apache security

我已经建立了一个带登录系统的网站。在我准备好之后,我用Acunetix扫描了它,但是我得到了以下消息:

没有设置HttpOnly标志的会话Cookie 会话Cookie没有设置安全标志(我猜这只有我有SSL连接)

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

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

3 个答案:

答案 0 :(得分:7)

您可以更改php.ini中的设置,也可以通过ini_set()调用将session.cookie_securesession.cookie_httponly值更改为true

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

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

答案 1 :(得分:1)

您应该查看this excellent site这个问题。它归结为在php.ini的sessions-section中设置它(或通过适当的运行时函数):

session.cookie_httponly = True

答案 2 :(得分:0)

当您使用PHP的setcookie时,您也可以将httponly标记设置为false

// params: name, value, expiration, path, domain, secure, http-only
setcookie('session-cookie-key', 'data', 0, '/', 'example.com', true, false);