Implement cookie HTTP header flag with HTTPOnly & Secure to protect a website from XSS attacks

Do you know you can mitigate most common XSS attacks using HttpOnly and Secure flag with your cookie?

XSS is dangerous. By looking at an increasing number of XSS attacks daily, you must consider securing your web applications.

Without having HttpOnly and Secure flag in the HTTP response header, it is possible to steal or manipulate web application sessions and cookies.

It’s better to manage this within the application code. However, due to developers’ unawareness, it comes to Web Server administrators.

I will not talk about how to set these at the code level. You can refer here.

Implementation Procedure in Apache

  • Ensure you have mod_headers.so enabled in Apache HTTP server
  • Add following entry in httpd.conf
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
  • Restart Apache HTTP server to test

Note: Header edit is not compatible with lower than Apache 2.2.4 version.

You can use the following to set the HttpOnly and Secure flag in lower than 2.2.4 version. Thanks to Ytse for sharing this information.

Header set Set-Cookie HttpOnly;Secure

Verification

You can either leverage the browser’s inbuilt developer tools to check the response header or use an online tool.

Did it help?

This is one of the many hardening things to do in Apache.