Olá, estou como duvida no next.js 13, como eu faco para permitir que meu app seja inserido em um iframe?
key: 'Content-Security-Policy', value: 'frame-ancestors *',
seria algo assim? dentro do meu next.config?
Olá, estou como duvida no next.js 13, como eu faco para permitir que meu app seja inserido em um iframe?
key: 'Content-Security-Policy', value: 'frame-ancestors *',
seria algo assim? dentro do meu next.config?
Oi!
Beleza, tá indo no caminho certo! No Next.js, dá pra mexer no cabeçalho 'Content-Security-Policy' pra deixar seu app ser inserido num iframe. Mas saca só, a parada da diretiva 'frame-ancestors *' faz com que qualquer site consiga incorporar seu app, o que pode ser meio arriscado dependendo do que você tá fazendo.
Valeu
Opa, vlw pela resposta... Consegui avancar um pouco no projeto.
Sobre o iframe, percebi que ele jã vem por default liberar e daria pra passar 'frame-ancestors http://exemplo.com' para permitir que só as urls listados possam usar, porém, achamos ficou exposto no console, pq ele diz quais estao liberados pra usar. E como serao varias urls de parceiros, optamos em usar o referer pra identificar qual url esta acessando a pagina, mas o problema é que o primeiro acesso assim que roda o projeto ele tem retornado null...
alguem já teve esse problema?
import { NextResponse } from 'next/server'; import { headers } from 'next/headers';
export default async function middleware() { console.log('to sendo chamado'); const headersList = headers(); const referer = headersList.get('referer');
console.log('referer:', referer);
const allowedDomains = [
'http://localhost:3000/',
'http://localhost:3001/',
];
if (allowedDomains.includes(referer)) {
return NextResponse.next();
}
return Response.json(
{ success: false, message: 'Forbidden' },
{ status: 403 }
);
}
export const config = { matcher: '/:path*', };