Explore las opciones HTTP-X-Frame conmigo

Opciones de marco X

X-Frame-OptionsEl encabezado de respuesta HTTP es una etiqueta que se utiliza para indicar al navegador si una página puede mostrarse en el navegador. Los sitios pueden evitar los ataques de secuestro de clics asegurándose de que el sitio no esté incrustado en el sitio de otra persona.

Esta seguridad adicional solo se proporciona si el usuario que accede al documento utiliza un navegador X-Frame-Optionscompatible .

Nota: Content-Security-Policy el encabezado de respuesta HTTP tiene una frame-ancestorsdirectiva y los navegadores que admiten esta directiva han dejado de usar X-Frame-Optionsel encabezado de respuesta.

gramática

X-Frame-OptionsHay dos valores posibles:

X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN

guía

Si se establece en DENY, no solo no se cargará cuando el marco de los sitios web de otras personas esté incrustado, sino que tampoco se cargará en páginas con el mismo nombre de dominio. Por otro lado, si se establece en SAMEORIGIN, la página se puede anidar en el marco de la página del mismo nombre de dominio.

  • DENY

    Indica que la página no puede mostrarse en un marco, incluso si está anidada en una página del mismo nombre de dominio.

  • SAMEORIGIN

    Indica que la página se puede mostrar en el marco de la misma página de nombre de dominio. La especificación deja que los proveedores de navegadores decidan si esta opción se aplica al nivel superior, al padre o a toda la cadena; algunas personas piensan que esta opción no es muy útil a menos que todas las páginas antepasadas pertenezcan al mismo origen (origen). Consulte Compatibilidad del navegador para obtener información detallada sobre la compatibilidad.

  • ALLOW-FROM uriobsoleto

    Esta es una directiva obsoleta y ya no funciona en los navegadores modernos, no la use. Cuando se admiten navegadores más antiguos, la página se puede mostrar en el marco de la fuente especificada. Tenga en cuenta que en versiones anteriores de Firefox, sufre SAMEORIGINel mismo problema que: no verifica todas las páginas anteriores del marco para ver si son del mismo origen. Content-Security-Policy HTTPHay una frame-ancestorsdirectiva , puede usar esta directiva en su lugar.

ejemplo

Nota: ¡ No X-Frame-Optionses ! por ejemplo, no <meta http-equiv="X-Frame-Options" content="deny">tiene ningún efecto. ¡No lo uses así! X-Frame-OptionsSolo funciona si los encabezados HTTP se configuran como en el ejemplo a continuación .

Configurar apache

配置 Apache 在所有页面上发送 X-Frame-Options 响应头,需要把下面这行添加到 'site' 的配置中:

Header always set X-Frame-Options "SAMEORIGIN"

要将 Apache 的配置 X-Frame-Options 设置成 DENY,按如下配置去设置你的站点:

Header set X-Frame-Options "DENY"

配置 Nginx

配置 Nginx 发送 X-Frame-Options 响应头,把下面这行添加到 'http', 'server' 或者 'location' 的配置中:

add_header X-Frame-Options SAMEORIGIN always;

配置 IIS

配置 IIS 发送 X-Frame-Options 响应头,添加下面的配置到 Web.config 文件中:

<system.webServer>
  ...

  <httpProtocol>
    <customHeaders>
      <add name="X-Frame-Options" value="SAMEORIGIN" />
    </customHeaders>
  </httpProtocol>

  ...
</system.webServer>

配置 HAProxy

配置 HAProxy 发送 X-Frame-Options 响应头,添加这些到你的前端、监听(listen),或者后端的配置里面:

rspadd X-Frame-Options:\ SAMEORIGIN

或者,在较新的版本中:

http-response set-header X-Frame-Options SAMEORIGIN

配置 Express

要配置 Express 以发送 X-Frame-Options 响应头,你可以使用借助了frameguardhelmet来设置首部。在你的服务器配置里面添加:

const helmet = require('helmet');
const app = express();
app.use(helmet.frameguard({ action: 'SAMEORIGIN' }));

或者,你也可以直接用 frameguard:

const frameguard = require('frameguard')
app.use(frameguard({ action: 'SAMEORIGIN' }))

Supongo que te gusta

Origin juejin.im/post/7235426780697428023
Recomendado
Clasificación