Session Cookie without HttpOnly flag set

2020-06-27 22:35发布

问题:

I have joust built a website with a login system. After I've just got ready I have scanned it with Acunetix, but I got the following message:

Session Cookie without HttpOnly flag set Session Cookie without Secure flag set (i guess this is only if I have SSL connection)

So my question would be, that how can I set HttpOnly flag for all my Session data? I'm just using sessions when I log in the users. I'm giving them a session with their userID number and than I'm getting data using that userID.

Is there any simple way that I can set ALL of the session HTTPOnly and secure them, so noone can touch them?

回答1:

You can either change settings in php.ini, or via ini_set() calls to change session.cookie_secure and session.cookie_httponly values to true.

Alternately, you can use session_set_cookie_params() before starting your session to get the effect you are looking for.

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



回答2:

You should check out this excellent site for this question. It comes down to setting it in the sessions-section of your php.ini (or via the appropriate runtime function):

session.cookie_httponly = True


回答3:

You could also just set the httponly flag to false when you use PHP's setcookie:

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