Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Procurei um monte na internet mas não achei essa informação de forma clara.
Gostaria de entender qual o processo e como fazer para por exemplo alterar alguns dados para enganar o servidor.
Por exemplo, em uma página qualquer da internet(que NÃO pertence a mim) tem um form semelhante ao form abaixo
<form action="alterei.php" method="post">
meus dados para preencher (qualquer): <input type="text" id="dadoqualquer"><br>
dado escondido <input type="hidden" id="dado_que_o_usuario_nao_deveria_alterar" id="hacker_nao_altere">
</form>
A pergunta é:
No caso do primeiro input, ele já está disponibilizado para o usuário preencher com o que quizer.
Porém o segundo input está escondido, então de qual forma (um hacker, ou sei lá o que) poderia alterar o conteúdo do segundo input e enviar para o servidor essa requisição com o input escondido aldulterado?
Você pode usar cURL para simular o formulário, pode usar o inspetor de elementos para alterar o valor ou usar o que dito anteriormente.
Não há como evitar que hackers ou crackers enviem falsos posts para o seu servidor,
isso pode ser feito de qualquer página na internet ou mesmo localmente, basta usar o cURL como o ESerra falou,
ou mandar requisições via ajax ou post por javascript, ou com PHP mesmo.
Sabendo disso, o que deve ser feito é o desenvolvedor se proteger desses ataques, colocando segurança no código, se o código está seguro dificilmente requisições de fora farão efeito, também existe a politica de origem de mesmo dominio, que evita que servidores externos mandem requisições para outro servidor.
obrigado pelas respostas.
eu sei que qualquer coisa que esteja na máquina do usuário é passivel de ser falsificado. Só gostaria de entender o processo para saber como me defender.
Aproveitando o guancho, eu vi que também da pra falsificar o $_SERVER. Vocês sabem como isso é feito? Segue o mesmo processo das respostas acima?
obs.: Se pode ser mudado pelo inspetor, então acredito que impedir servidores externos não irá refrescar muito, né (ou será que não)?
Estou preocupado com o XSS, quero saber se é possível por exemplo o hacker enviar a minha página com um formulario meu e com um submit para o site do atacante, fazendo meus usuários se cadastrarem em um link meu, mas na hora do submit o formulário ser enviado para outro link.
Caso você tenha autonomia sobre o código, você pode usar jQuery.
$('#hiddenField').attr('val','valor alterado');
De forma remota, creio não ser possível.
Observação: Seu hidden field tem 2 IDs.