files/en-us/web/http/reference/headers/content-security-policy/frame-src/index.md
The HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP)
frame-src directive specifies valid sources for nested
browsing contexts loading using elements such as {{HTMLElement("frame")}} and
{{HTMLElement("iframe")}}.
<table class="properties"> <tbody> <tr> <th scope="row">CSP version</th> <td>1</td> </tr> <tr> <th scope="row">Directive type</th> <td>{{Glossary("Fetch directive")}}</td> </tr> <tr> <th scope="row">Fallback</th> <td> If this directive is absent, the user agent will look for the {{CSP("child-src")}} directive (which falls back to the {{CSP("default-src")}} directive). </td> </tr> </tbody> </table>[!NOTE]
frame-srcallows you to specify where iframes in a page may be loaded from. This differs fromframe-ancestors, which allows you to specify what parent source may embed a page.
Content-Security-Policy: frame-src 'none';
Content-Security-Policy: frame-src <source-expression-list>;
This directive may have one of the following values:
'none'
<source-expression-list>
Given this CSP header:
Content-Security-Policy: frame-src https://example.com/
The following {{HTMLElement("iframe")}} is blocked and won't load:
<iframe src="https://not-example.com/"></iframe>
{{Specifications}}
{{Compat}}