Pergunta

Eu sei, há JSONP, que envolve a cooperação do servidor para o nome do espaço de dados.

O que está me incomodando é o fato de que o conteúdo da tag script src é Avaliados , mas é não disponíveis para leitura.

<script src="http://www.google.com"></script>

Tudo o que precisamos descobrir é como o espaço de nomes de dados, isso é tudo. É claro que eu tentei coisas muito idiotas sem resultado relevante (eu sei que isso não funciona, mas você pode ver o que eu estou tentando alcançar):

<script>eval('var namespace="');</script>
<script src="http://www.google.com"></script>
<script>eval('";');</script>

Desde há informações realmente nenhuma relevantes sobre como o conteúdo src é avaliada, eu sei que é escopo global, mas se pudéssemos traçar etapas de avaliação ou talvez cadeia evals âmbito de alguma forma (não muita documentação sobre isso como bem), que poderia resolver este irritante " avaliadas, mas não legível " coisa.

Todas as idéias?

Foi útil?

Solução

HTML5 fornece window.postMessage que fornece um mecanismo para troca de mensagens entre domínios de segurança, e é suportado pelo Firefox 3, Opera 9.6, e WebKit nightlies.

Dito sua sugestão acima podem não trabalho porque requer um comportamento fundamentalmente diferente da eval de javascript. parses eval e executa a string dada no contexto atual - o que você está pedindo é que a mudança eval o código real da função que contém. por exemplo.

 for (var i = 0; i < 10; i++) eval("; doSomething();");

se tornaria

 for (var i = 0; i < 10; i++) ; doSomething();;

significa que o loop for fique vazia e, doSomething só seria chamado uma vez. Claramente isso iria resultar em incrivelmente difícil de compreender a semântica, bem como tornando-se substancialmente menos seguro para uso, como eval ganharia a capacidade de influenciar diretamente o fluxo de controle.

Outras dicas

Eu não estou certo de que este é de todo possível devido às políticas de segurança do navegador.

Eu estou inclinado a dizer deixá-lo. Esses tipos de problemas serão resolvidos, mas não por hackers em torno do que já temos. A web é fundamentalmente quebrado a esse respeito. O fato de que qualquer script de um domínio pode ser executado em outra é uma vulnerabilidade de segurança grave que vai dificultar o crescimento da web se não for controlada.

http://www.slideshare.net/webdirections/douglas -crockford-ajax-security-apresentação

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top