Jump to content

Recommended Posts

Posted

Boas a todos,

Estou a desenvolver um website em que ele chama uma página e carrega dentro de uma div.

O problema é que o conteúdo da página externa não "assume" qualquer tipo de estilo.

Como o posso resolver?

Cumps.cmd

Posted (edited)

Eu estou a usar Javascript "normal".

Aqui está o código:

function AbrePagina(url, target,cod)
{
//variavel utilizada para impedir o caching, de forma a garantir que carrega sempre o ficheiro do servidor e não a copia em cache
var getdate = new Date();
if(xmlhttp)
{
	//a variavel dados vai conter o método para o GET (?dados=) e completar com o código da mensagem (cod) que se pretende visualizar
	var dados = "?dados=" + cod;
	//quando houver alterações no estado executa a função de resposta respectiva
	xmlhttp.onreadystatechange  = function() {respostaAbrePagina(url,target) }
	//abre a página correspondente utilizando o método GET e passando os parametros correspondentes
	xmlhttp.open("GET",url + dados,true);
	//o codigo ref siginifa que o header deverá ser refrescado
	if (cod=="ref")
	{
		refrescaHeader();
	}
	xmlhttp.send("");
}
}
function respostaAbrePagina(url, target)
{
//o estado varia entre 0 e 4, o unico que interessa é o 4
//se o estado for 4 significa que o pedido foi terminado e a resposta está pronta
if (xmlhttp.readyState == 4)
{
	//o estado varia entre 200 e 404, sendo que o 404 significa "não encontrado"
	//se o estado for 200 significa que a página foi encontrada e está tudo "OK"
	if(xmlhttp.status == 200)
	{
		//caso tudo acima tenha sido bem sucedido vai actualizar o conteudo da div "message" com a resposta proveniente da página de onde chegou a resposta
		document.getElementById(target).innerHTML=xmlhttp.responseText;
	}
	else
	{
		//caso o estado seja o 404, informa o utilizador que ocorreu um erro
		alert("Ocorreu um erro. Se o problema persistir, por favor, contacte o Administrador.");
	}
}
}
Edited by softklin
Adicionado o GeSHi

Cumps.cmd

Posted

O teu código está completamente à mercê de um ataque man-in-the-middle.

Devias de ter o teu código completamente limitado de maneira a que ele esteja preparado para receber só dados a partir do servidor e não HTML do servidor. Experimenta usar JSON ou XML para isso.

  • Vote 1

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Posted

O que eu estou a fazer é a preencher o conteúdo da página externa dentro da div.

Como o posso fazer sem estar sujeito a esse tipo de ataques?

Cumps.cmd

Posted

Não envies código HTML a partir do servidor em resposta a uma "query" usando AJAX e não aceites código HTML no código que usa o XMLHttpRequest.

Usa JSON ou XML para transferir os dados.

Gera os nodes do DOM dinamicamente usando os dados que recebes a partir do servidor.

Ex: Tens um selectbox no sistema. Podes enviar para o cliente (isto é JSON mas tb podia ser XML):

{
"select5" : [
 ["text1", "value1"],
 ["text2", "value2"],
 ["text3", "value3"]
  ]
}

Depois, para gerar e meter no DOM:

// ...
var selectBox = document.createElement('select');
for(var i = 0; i < someObject['select5'].length; i++){
var option   = document.createElement('option');
option.value = someObject['select5'][i][0];
option.text  = someObject['select5'][i][1];

selectBox.appendChild(option);
}
// ...

(nota: espero não ter cometido erros de sintaxe)

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Posted

É vdd, esqueci-me de indicar isso!

someObject = JSON.parse(xmlhttp.responseText)

Vê sobre o JSON aqui: https://developer.mo...ects/JSON/parse

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.