2012-10-25 138 views
3

我有建立一个网站与登录系统。刚刚准备好后,我用Acunetix扫描了它,但我收到以下消息:没有HttpOnly会话Cookie标志设置

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

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

是否有任何简单的方法,我可以设置所有的会话HTTPOnly并保护它们,因此没有人可以触摸它们?

回答

7

您可以通过电话ini_set()在php.ini中更改设置或更改session.cookie_securesession.cookie_httponly的值为true

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

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

+0

如果我在php.ini设置,这将是安全的,这个问题将是解决呢? – user1406071

+0

是的,你应该通过安全扫描,一旦你有两个ini值设置正确(无论是在php.ini或运行时通过提到的其他方法)。 –

+0

我在webmin看过我的php.ini,但没有找到像session.cookie_httponly这样的东西:(我有版本5.2,是否可以吗? – user1406071

1

你应该检查出this excellent site这个问题。归结到一点,(或通过适当的运行功能)在你的php.ini的会议段设置它:

session.cookie_httponly = True 
0

你也可以只设置httponly标志false当您使用PHP的setcookie

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