Clickjacking is a malicious technique of tricking Web users into revealing confidential information or taking control of their computer while clicking on seemingly innocuous Web pages. A vulnerability across a variety of browsers and platforms, a clickjacking takes the form of embedded code or script that can execute without the user's knowledge, such as clicking on a button that appears to perform another function.
The term "clickjacking" was coined by Jeremiah Grossman and Robert Hansen in 2008. The exploit is also known as UI redressing.
Clickjacking can be understood as an instance of the confused deputy problem. Contents
Clickjacking is possible because seemingly harmless features of HTML Web pages can be employed to perform unexpected actions.
A clickjacked page tricks a user into performing undesired actions by clicking on a concealed link. On a clickjacked page, the attackers show a set of dummy buttons, then load another page over it in a transparent layer. The users think that they are clicking the visible buttons, while they are actually performing actions on the hidden page. The hidden page may be an authentic page, and therefore the attackers can trick users into performing actions which the users never intended to do and there is no way of tracing such actions later, as the user was genuinely authenticated on the other page.
The user receives an email with a link to a video about a news item, but another valid page, say a product page on amazon.com, can be "hidden" on top or underneath the "PLAY" button of the news video. The user tries to "play" the video but actually "buys" the product from Amazon. Other known exploits have been: tricking users to enable their webcam and microphone through Flash (which has since been corrected by Adobe); tricking users to make their social networking profile information public; making users follow someone on Twitter; share links on Facebook
Protection against clickjacking can be added to Mozilla Firefox versions by installing the NoScript add-on: its ClearClick
feature, released on 8 October 2008, prevents users from clicking on invisible or "redressed" page elements of embedded documents or applets, defeating all the types of clickjacking (i.e. frame-based and plugin-based).
The NoScript add-on for Firefox remains the only free product providing automatic client-side protection, with no need for awareness and cooperation from the Web site authors.
GuardedID (a commercial product) provides client-side clickjack protection for users of IE or Firefox without interfering with the operation of legitimate iFrames.
Gazelle is a Microsoft Research project secure web browser based on IE, that uses an OS-like security model, and has its own unique defenses against clickjacking. In Gazelle, a window of different origin may only draw dynamic content over another window's screen space if the content it draws is opaque.
Server and client
Microsoft's suggested solution, which has since also been implemented in Apple's Safari, Firefox, and Google's Chrome Web browsers, is to check for a new HTTP header, X-Frame-Options. This header can have two values, deny and sameorigin, which will block any framing or framing by external sites, respectively.
Both framekillers and IE8's mitigation approach, however, require Web developers to protect vulnerable pages by modifying their content or the way they are served, although, even on "protected" pages, they cannot prevent plugin-based clickjacking variants since they don't need frames.
Firefox includes X-Frame-Options clickjacking protection since version 3.6.9, released on 7 September 2010.