Re: [websec] Frame-Options: Why a header and not a CSP directive?

=JeffH <> Fri, 04 May 2012 17:13 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id A814521F8616 for <>; Fri, 4 May 2012 10:13:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -100.131
X-Spam-Status: No, score=-100.131 tagged_above=-999 required=5 tests=[AWL=0.364, BAYES_00=-2.599, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, RDNS_NONE=0.1, USER_IN_WHITELIST=-100]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id nyuFKkD7wzSE for <>; Fri, 4 May 2012 10:13:31 -0700 (PDT)
Received: from ( [IPv6:2605:dc00:100:2::a6]) by (Postfix) with SMTP id B371121F8615 for <>; Fri, 4 May 2012 10:13:30 -0700 (PDT)
Received: (qmail 8043 invoked by uid 0); 4 May 2012 17:13:30 -0000
Received: from unknown (HELO ( by with SMTP; 4 May 2012 17:13:30 -0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;; s=default; h=Content-Transfer-Encoding:Content-Type:Subject:To:MIME-Version:From:Date:Message-ID; bh=eoGk6zfVp3lWnGLKzhWpjd1K9NMXWRBiDaTGozYcKwM=; b=1de2LK61WFENj0WJ8JRXvCTi/LmLMQ+ciNPv18IJcHAES9X0TzYVw2LyI01J2bF08o8sgnq22oFr0TubmjMkGcPBO+1K1+wqMz9PLZMFRgeM3YBXGewPdyuL6lIjEZ85;
Received: from ([] helo=[]) by with esmtpsa (TLSv1:CAMELLIA256-SHA:256) (Exim 4.76) (envelope-from <>) id 1SQM4P-0001wR-W2 for; Fri, 04 May 2012 11:13:30 -0600
Message-ID: <>
Date: Fri, 04 May 2012 10:13:31 -0700
From: =JeffH <>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv: Gecko/20120313 Thunderbird/3.1.20
MIME-Version: 1.0
To: IETF WebSec WG <>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Identified-User: {} {sentby:smtp auth authed with}
Subject: Re: [websec] Frame-Options: Why a header and not a CSP directive?
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Web Application Security Minus Authentication and Transport <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 04 May 2012 17:13:31 -0000

 > On Fri, May 4, 2012 at 12:11 AM, Julian Reschke <>; wrote:
 >> On 2012-05-04 01:58, Adam Barth wrote:
 >>> In we're
 >>> introducing a new HTTP header called Frame-Options.  Is there a
 >>> particular reason to create yet-another-HTTP-header for carrying this
 >>> security policy?  Rather than inventing a new HTTP header, we can use
 >>> the extensible Content-Security-Policy header.
 >>> ...
 >> Well, the header field already exists as "x-frame-options", so the only
 >> thing new here is that there's a spec, and that it's promoting a prefix-less
 >> name.
 >> I have no opinion on whether it should be a CSP directive, but a goal should
 >> be to document what's out there, even if we don't like it. In *particular*
 >> if it is related to security, and used in practice.
 > Yes, I agree that we should document the existing X-Frame-Options
 > header.  However, the Frame-Options header doesn't yet exist.  Rather
 > than introduce it, I wonder if we'd be better off making the
 > "unprefixed" version a CSP directive rather than an HTTP header.

To hopefully clarify here, there's indeed an intended Informational track draft 
regarding the "x-frame-options" header field such that it's documented in a 
referenceable spec (rather than only a blog post)..

And then there's the "frame-options" draft which is proposing (as Adam notes) a 
new header field along with some functionality that's beyond the existing 
"x-frame-options" mechanism..

It's w.r.t. this latter draft that Adam is wondering whether we could simply 
specify a new directive for the content security policy header (CSP) rather 
than invent yet another header field.

Also note that as of 24-Apr, both of the above drafts are accepted as WG 
drafts, but it seems they haven't yet been re-issued with new filenames (see 
msg from Alexey to websec@ on Tue, 24 Apr 2012 18:29:13 +0100)