Cookie missing security attributes
Cookie missing security attributes
Description
Secure cookie: is only sent to the server with an encrypted request
over the HTTPS protocol. Cookies missing the Secure flag can be sent
over unencrypted channels. The flag's presence should not justify
the storage of sensitive data, as the flag remains an unsafe place to
store data.
HttpOnly cookie: helps mitigate cross-site scripting (XSS)
vulnerabilities, HttpOnly cookies are inaccessible from javascript
using the document.cookie API.
```http request Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
#### Recommendation
Add missing security attributes to the cookies. Adding the flag depends
on the framework used and can either be a global setting or be done
manually by adding the flags to the request.
For session cookies managed by PHP, the flag is set either in `php.ini`:
```http request
session.cookie_secure = True
Or in code:
setcookie ( string $name [, string $value = "" [, int $expires = 0 [, string $path = "" [, string $domain = "" [, bool $secure = FALSE [, bool $httponly = FALSE ]]]]]] ) : bool
setcookie ( string $name [, string $value = "" [, array $options = [] ]] ) : bool
For accurate details on how to add the flag, check the documentation of your framework.
Links
Standards
- OWASP_ASVS_L1:
- V3_4_2
- OWASP_ASVS_L2:
- V3_4_2
- OWASP_ASVS_L3:
- V3_4_2
- PCI_STANDARDS:
- REQ_2_2
- REQ_3_6
- REQ_3_7
- REQ_6_2
- REQ_6_3
- REQ_6_4
- REQ_11_3