Estoy trabajando con el equipo de seguridad en mi trabajo para obtener un sitio web acreditado antes de poder publicarlo ... Es una página web muy simple alojada en páginas Github con solo un poco de javascript.
Llegué a un obstáculo en cuanto a crear el código para asegurar el sitio web lo suficiente. Como esta es una comunidad de expertos en seguridad, pensé que lo haría.
El problema es que de acuerdo a la seguridad:
el sitio todavía tiene una respuesta encuadrada, para prevenir efectivamente ataques de encuadre, la aplicación debe devolver un encabezado de respuesta con el nombre X-Frame-Options y el valor DENY para evitar el encuadre en total, o el valor SAMEORIGIN para permitir el encuadre solo por páginas en el mismo origen que la respuesta misma.
Por lo tanto, estoy tratando de agregar todo el código de seguridad que se me ocurre en términos de metaetiquetas y script (esto es github pages y no puedo hacer ningún archivo .htaccess)
Aquí están mis meta. (Sé que algunos de ellos no funcionan en Firefox o Chrome, pero agregué de todos modos)
<meta http-equiv="Content-Security-Policy" content="
default-src 'self';
font-src 'self' https://fonts.gstatic.com;
frame-src 'self' https://a.tiles.mapbox.com https://docs.google.com/ https://www.mapbox.com;
img-src 'self';
script-src 'self' https://ajax.googleapis.com 'unsafe-inline' ;
style-src 'self' https://fonts.googleapis.com/ 'unsafe-inline' ;
">
<meta http-equiv="Access-Control-Allow-Origin" content="Origin">
<meta http-equiv="X-XSS-Protection" content="1;mode=block" always>
<meta http-equiv="X-Content-Type-Options" content="'nosniff' always">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<meta name="referrer" content="no-referrer" />
<meta http-equiv="X-Frame-Options" content="deny">
Luego agregué un script justo después de la etiqueta de encabezado al inicio de la página
<script>
if (self == top) {
var theBody = document.getElementsByTagName('body')[0];
theBody.style.display = "block";
}
else {
top.location = self.location;
}
</script>
Pruebo localmente, si una página intenta incrustar el sitio web, se redirige al sitio web real.
Tras el debate, todavía recibo la respuesta de que
Compruebe amablemente si se implementó la política de ORIGEN MISMO, esto puede resolver el problema para los navegadores web restantes.
Honestamente, estoy un poco perdido sobre qué más debo asegurar. Creo que el problema para el equipo de seguridad es que en los encabezados de respuesta todavía se ven
access-control-allow-origin: *
cualquier ayuda es realmente realmente apreciada ... ¿qué es lo que no entiendo? ¿Qué metaetiquetas o javascript me faltan? ¿hay una manera de cambiar access-control-allow-origin:*
para las páginas de github?
Me encanta el equipo de seguridad y crear un código seguro ... No quiero frustrarlos más a ellos mismos.
Cualquier ayuda es apreciada.