Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ramonszo

[Resolvido] Enviar formulários CROSS-DOMAIN

Recommended Posts

Tenho uma página que salva os dados, com uma requisição em ajax. como evitar que outros sites "requisitam" essa página? Ou seja, liberar o acesso a essa página só para o meu domínio?

Compartilhar este post


Link para o post
Compartilhar em outros sites

$_SERVER['HTTP_REFERRER']

 

mas não é aconselhável uso desse parâmetro global

 

ele pode retornar "null" ou vazio, mesmo dentro do domínio válido, o que poderia ocasionar em falha na requisição XMLHTTPREquest

 

Isso depende do browser cliente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com referrer, se alguém por exemplo usa o cURL pra pegar minha página, ele não pode alterar o referrer?
também.. mas isso poderia até ser relevante

 

o problema maior é que o referrer retorna "null" mesmo para requisições legítimas, dependendo do tipo de browser do cliente.

 

 

avalie se é viável utilizar captcha ou algo do gênero

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, como os meus formulários requerem que o usuário seja cadastrado, se eu por exemplo, der uma chave pra cada usuário, tipo um MD5, e enviar essa chave em todos os forms, pra validar ela, dá certo? :s

Compartilhar este post


Link para o post
Compartilhar em outros sites

como faria para enviar a "chave criptografada" ?

 

o usuário teria que digitar ?

 

enviaria por meio de um campo tipo hidden ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Enviaria por um input hidden, ou por um "var key='xxx'" no Javascript (já que a maioria dos meus formulários são Ajax)

Compartilhar este post


Link para o post
Compartilhar em outros sites

nesse caso não há nenhuma segurança

 

citando um exemplo, seria o mesmo que fechar a porta de uma casa e deixar a chave no chão, na frente da porta.

 

acredito que para o seu caso, o ideal seria uso de captcha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas, a idéia seria proteger os formulários de requisições externas, e para isso eles iriam ter q saber a chave, que é única pra cada usuário. Já no meu site, o sistema iria saber as chaves, e valida-las...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas aqui ele só leria a chave se o usuário permitisse... ou se o usuário executasse scripts na conta dele...

??

 

esse formulário é restrito para usuários que estão logados/autenticados ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é com bots, é com pessoas, que podem criar uma página maliciosa, por exemplo, pro usuário deletar algum item da conta dele.Eu achei essa idéia da Key boa, pois assim a pessoa que criar tal página, teria que saber a Key, que só o usuário sabe. Eu só não sei agora se essa idéia da pra evitar algo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é com bots, é com pessoas, que podem criar uma página maliciosa

em negrito, o que seriam essas páginas maliciosas ?

páginas clone ?

 

não entendo ainda qual a preocupação.

 

se a página do usuário é restrita somente à conta do usuario, como outra pessoa poderá entrar e fazer algo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Páginas fake, ou também, qualquer pagina, que contenha algum código em javascript, que crie e envie um formulário invisivel, e se o usuário tiver logado no meu site, o formulário irá ser aceito.

 

Por exemplo, em javascript:

 

<iframe name="myframe" style="width:0px;height:0px;border:0px"></iframe>

<script type="text/javascript">
function fillframe() {
mf = window.frames["myframe"];

html = '<form name="getrichform" action="https://secure.mybank.com/transfermoney.php" method="post">';
html = html + ' <input type="hidden" name="ammount" value="all"/>';
html = html + ' <input type="hidden" name="to" value="my friend bob"/>';
html = html + ' <input type="hidden" name="when" value="right now"/>';
html = html + '</form>';

mf.document.body.innerHTML = html;
mf.document.getrichform.submit();
}
</script>

Se isso tivesse em alguma página, e eu tivesse logado no site desse banco, eu ia dar todo meu dinheiro pra alguma pessoa. É mais ou menos isso que eu quero evitar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Captcha não dá né.. imagina qualquer ação q o usuário for executar ele ter q digitar.. ele iria sair do meu site na hora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.