aboutsummaryrefslogtreecommitdiff
path: root/files/es/web/http/headers/x-frame-options/index.html
blob: cb18b7d4b6fc14f72143abf20dad2532e9463417 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
---
title: X-Frame-Options
slug: Web/HTTP/Headers/X-Frame-Options
translation_of: Web/HTTP/Headers/X-Frame-Options
---
<div>{{HTTPSidebar}}</div>

<p>El encabezado de respuesta <a href="/en-US/docs/Web/HTTP">HTTP</a> <strong><code>X-Frame-Options </code></strong>puede ser usado para indicar si debería permitírsele a un navegador renderizar una página en un {{HTMLElement("frame")}}, {{HTMLElement("iframe")}} o {{HTMLElement("object")}} . Las páginas webs pueden usarlo para evitar ataques de {{interwiki("wikipedia", "clickjacking")}} , asegurándose que su contenido no es embebido en otros sitios.</p>

<p>La seguridad añadida sólo es proporcionada si el usuario que está accediendo al documento está utilizando un navegador que soporte <code>X-Frame-Options</code>.</p>

<table class="properties">
 <tbody>
  <tr>
   <th scope="row">Tipo de encabezado</th>
   <td>{{Glossary("Response header")}}</td>
  </tr>
  <tr>
   <th scope="row">{{Glossary("Nombre de encabezado prohibido")}}</th>
   <td>no</td>
  </tr>
 </tbody>
</table>

<h2 id="Sintaxis">Sintaxis</h2>

<p>Existen tres posibles directivas para <code>X-Frame-Options</code>:</p>

<pre class="syntaxbox">X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
X-Frame-Options: ALLOW-FROM https://example.com/
</pre>

<h3 id="Directivas">Directivas</h3>

<p>Si especifica DENY, fallarán no sólo los intentos de cargar la página en un marco desde otros sitios, sino que fallarán cuando sea cargada desde el mismo sitio. Por otro lado, si especifica SAMEORIGIN, puede usar la página en un marco mientras el sitio que la incluya sea el mismo que la sirve.</p>

<dl>
 <dt><code>DENY</code></dt>
 <dd>La página no puede ser mostrada en un marco, independiente del sitio que esté intentándolo.</dd>
 <dt><code>SAMEORIGIN</code></dt>
 <dd>La página sólo puede ser mostrada en un marco del mismo origen que dicha página.</dd>
 <dt><code>ALLOW-FROM <em>uri</em></code></dt>
 <dd>La página sólo puede ser mostrada en un marco del origen especificado.Tenga en cuenta que en Firefox esto todavía sufre del mismo problema que SAMEORIGIN — no verifica los antecesores del marco para ver si están en el mismo origen.</dd>
</dl>

<h2 id="Ejemplos">Ejemplos</h2>

<div class="note">
<p><strong>Nota:</strong> ¡Configurar el tag <em>meta</em> es inútil! Por ejemplo, <code>&lt;meta http-equiv="X-Frame-Options" content="deny"&gt;</code> no tiene efecto. ¡No lo use! Sólo funcionará configurando el encabezado HTTP <code>X-Frame-Options</code> como en los ejemplos anteriores.</p>
</div>

<h3 id="Configurando_Apache">Configurando Apache</h3>

<p>Agregue lo siguiente a la configuración de su sitio para que Apache envíe el encabezado <code>X-Frame-Options</code> para todas las páginas:</p>

<pre>Header always append X-Frame-Options SAMEORIGIN
</pre>

<p>Para que Apache envíe <code>X-Frame-Options</code>  deny , agregue lo siguiente a la configuración de su sitio:</p>

<pre>Header set X-Frame-Options DENY
</pre>

<p>Para que Apache envíe el encabezado <code>X-Frame-Options</code> para permitir (<code>ALLOW-FROM</code>) un host en específico, agregue esto a la configuración de su sitio:</p>

<pre>Header set X-Frame-Options "ALLOW-FROM https://example.com/"
</pre>

<h3 id="Configurando_nginx">Configurando nginx</h3>

<p>Para configurar nginx a que envíe el encabezado <code>X-Frame-Options</code> , agregue esto a la configuración, ya sea http, server o location:</p>

<pre>add_header X-Frame-Options SAMEORIGIN;
</pre>

<h3 id="Configurando_IIS">Configurando IIS</h3>

<p>Para hacer que IIS envíe el encabezado <code>X-Frame-Options</code>, agrege esto al archivo <code>Web.config</code> de su sitio:</p>

<pre class="brush: xml">&lt;system.webServer&gt;
  ...

  &lt;httpProtocol&gt;
    &lt;customHeaders&gt;
      &lt;add name="X-Frame-Options" value="SAMEORIGIN" /&gt;
    &lt;/customHeaders&gt;
  &lt;/httpProtocol&gt;

  ...
&lt;/system.webServer&gt;
</pre>

<h3 id="Configurando_HAProxy">Configurando HAProxy</h3>

<p>Para hacer que HAProxy envíe el encabezado <code>X-Frame-Options</code>, agrege lo siguiente a su configuración front-end, listen, o backend:</p>

<pre>rspadd X-Frame-Options:\ SAMEORIGIN</pre>

<h2 id="Especificaciones">Especificaciones</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Especificación</th>
   <th scope="col">Título</th>
  </tr>
  <tr>
   <td>{{RFC("7034")}}</td>
   <td>HTTP Header Field X-Frame-Options</td>
  </tr>
 </tbody>
</table>

<h2 id="Compatibilidad_con_navegadores">Compatibilidad con navegadores</h2>



<p>{{Compat("http.headers.X-Frame-Options")}}</p>

<p> </p>

<p>Corrección de traducción por Ervin A. Santos R.</p>

<p>el 21-Oct-2018</p>

<h2 id="Vea_también">Vea también</h2>

<ul>
 <li><a class="external" href="https://blogs.msdn.com/b/ie/archive/2009/01/27/ie8-security-part-vii-clickjacking-defenses.aspx">ClickJacking Defenses - IEBlog</a></li>
 <li><a href="https://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frame-options.aspx">Combating ClickJacking with X-Frame-Options - IEInternals</a></li>
 <li><a href="https://tools.ietf.org/html/rfc7034">HTTP Header Field X-Frame-Options - RFC 7034</a></li>
 <li><a href="https://w3c.github.io/webappsec/specs/content-security-policy/#directive-frame-ancestors">CSP Level 2 frame-ancestors directive</a></li>
</ul>