Security Web Development WordPress

Stop Clickjacking by preventing your WordPress site loading in a Frame

Clickjacking is a potential security risk caused by someone loading your website in a frame on their domain, and hijacking interactions you make with that site.

For example if your website requires a user to login, it could log the username and passwords of users targeted by the clickjacking attack.

Fortunately preventing clickjacking in WordPress is fairly straightforward. You can just add this little snippet of code in your functions file to set the X-FRAME-OPTIONS header to SAMEORIGIN.

This will send a header along with WordPress that tells browsers to prevent pages showing up in frames that not on the same domain as your website.

Clickjacking and Older Browsers

Older browsers (browsers older than Internet Explorer 8 (IE8)) don’t understand the X-FRAME-OPTIONS header, so we have to fallback to JavaScript like in the example below:

Of course we only want to enqueue the above script to load for browsers older than IE8, so we can use a good old conditional statement to do this:

Matt Watson loves to talk about Health, Wealth and Code (mainly WordPress). Get in touch with Matt or follow Matt on Twitter to get notified about his latest posts.

4 Comments

  1. De Belser Arne Reply

    Should I put these 3 code snippets in the functions.php of my child theme?

    • Hi De Belser Arne, the first and last snippet can go in the functions.php file. The middle one (the JavaScript file) goes in a folder called ‘js’ in your theme in a file called ‘clickjack-protection.js’.

  2. De Belser Arne Reply

    Should I put these 3 code snippets in the functions.php of my child theme?

    • Hi De Belser Arne, the first and last snippet can go in the functions.php file. The middle one (the JavaScript file) goes in a folder called ‘js’ in your theme in a file called ‘clickjack-protection.js’.

Write A Comment