last day (14 days later) » 

07:33
0
A: Como observar um erro no elemento iframe com atributo "sandbox"

SergioPara ser avisado quando há erros: Podes juntar uma callback para quando houver erros e assim ser avisado e correr código caso isso aconteça. Poderia ser algo assim: function avisarErros(el) { return function(texto, url, linha) { console.log('Erro na iFrame:', el); console.lo...

o iframe com atributo "sandbox" sem permissões serve para carregar um documento sem executar scripts o que é exatamente minha necessidade como descrito na pergunta. O erro ocorre se o documento tenta executar um script e é esse erro que quero "pegar" sabes e dizer como pegá-lo?
@LauroMoraes ah, estou a ver. Vou rever a resposta.
@LauroMoraes editei, dá uma olhada. Era isso que querias?
grato pela atenção. Como o iframe não carrega pelo src más somente pelo srcdoc acredito que este erro ocorra na página "pai" no documento corrente más não encontrei referencia a ele...más se ele printa no console deve haver uma aneira de observá-lo um listener talvez
@LauroMoraes quando te referes ao elemento pai queres dizer o elemento onde o iFrame está inserido certo? é esse elemento pai que queres saber qual é?
minha index.html possui o iframe como descrito então se o iframe não pode carregar script, no console lança um erro é esse erro que quero pegar. Não quero carregar script no iframe
não sei se entendeu
07:34
@LauroMoraes bom dia!
sim, acho que percebi
a minha resposta mostra isso
já viste a primeira parte e o que mostra na consola?
sua resposta mostra o erro do script no iframe não o erro porque o iframe é proibido de exeutar script
not
note que: se o iframe não pode executar o navegador lança um erro é este erro que quero
a ver se entendo, se ele não pode executar script queres ser avisado então
é isso?
isso
mas não é por falha
é porque o iframe não possa executar esmo
mesmo
acredito que deva aver uma referencia para o tratamento deste erro (aviso) só não a encrontrei
haver
ou será que não há? porque o erro é mostrado!
o bloco try/catch não pega esse erro
07:43
acho que esse erro é interno, mas deve dar para fazer um feature test
estou a testar
07:55
@LauroMoraes sabes trabalhar com código async?
dá uma olhada aqui: jsfiddle.net/09qgppyv
achou algo
olhando
07:57
sim. E depois testa tirar o ="allow-scripts allow-same-origin" do iframe
to opiando pra ve se entendo a lógica já retorno...
@LauroMoraes se isso funcionar como queres posso colocar na resposta, com algumas correções de limpeza
espere
ta eu intendi a lógica tentar injetar um script no iframe más pense:
o iframe não permite porque: o markdown vira de várias fontes
se eu permito que o iframe execute só para fechalo e ter certeza de que bloquei não faz sentido
no fim o iframe não executa (pq foi feito por este propósito) e não posso até o momento realente saber se um arquivo markdown enviado tem sript
a ideia é correr isto quando a página carrega e saber se o iFrame aceita ou não script. E usares codigo X se aceitar e Y se não aceitar
más é por padrão nao aeitar
não aceitar seerá o padrão
08:08
o que queres saber é se o iframe corre script ou saber se a string de markdown tem um script dentro?
@LauroMoraes ^
olha só este markdon pode ser de um arquivo no servidor ou de um arquivo remoto...não existe forma de garantir que um parse limpe higienize o docuento o jeito efetivo é usar um iframe sem permissões de execução
e isso, caso o documento possua u script lança um erro é essa a questão peguar este erro
então queres uma função que diga se uma string de markdown dispara um erro na iframe?
não o erro é disparado pela api do iframe só não sei como e se posso ouvilo, observalo
você falou que seria um código interno? do navegador
?
mas na prática a funcionalidade que queres é saber se uma string tem <script> dentro certo?
não
veja eu exemplo no jsfiddle ele é realente só isso.
08:15
dá uma olhada aqui: jsfiddle.net/0h2hjbnd
abra o console e veja o erro
é este erro que quero
viste o meu fiddle? não é isso que precisas saber? (se uma string tem um script)
@LauroMoraes outra ideia é ir à iframe e fazer ifrm[0].getAttribute('sandbox'). Assim podes procurar pelo comando "allow-scripts" e caso não haja já sabes...
não sorry não é isso... sei que é 6:30 da manhã agradeço a ajuda de boa fé más não é isso
aqui (na Suécia) são 10.22 da manhã :) eu já dormi :P
por isso me deu bom dia 5:00 da atina rsrsrs
matina
08:23
explica de novo pff, se perceber o que queres consigo certamente ajudar
não busco outra forma de fazer verificação. esta forma já existe é o iframe só quero o erro que ele lança
a maioria das perguntas do stack relacionadas a iframe é executar acho que é por isso a confusão
se si ligou no fiddle que adicionei? é exatamente aquilo. O iframe não pode permitir o javascript lança o erro, sai no console :)
09:26
par mitigar o seu exemplo de como filtrar a tag script no documento. esta não é a unica forma de ataque
tava olhando (ta defasado mas passa a ideia) e tem muitos exemplos que ainda hoje são funcionais deste do I.E 8.1
esse é um exemplo más poderia ser uma função inteira pegando cookies e enviandonpara fora: <IMG onmouseover="alert(document.cookie)" width="50px" height='30px'>
isso passaria num filtro assim como esta também não:
<img src=x width='50px' height='30px' onerror="&#0000106&#0000097&#0000118&#0000097&#0000115&#0000099&#0000114&#000010‌​5&#0000112&#0000116&#0000058&#0000097&#0000108&#0000101&#0000114&#0000116&#000004‌​0&#0000039&#0000088&#0000083&#0000083&#0000039&#0000041">
bom...só pra justificar não que seja realmente o foco

last day (14 days later) »