Ir para conteúdo

Arquivado

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

Wesley F Souza

[Resolvido] Qual mais seguro, GET ou POST?

Recommended Posts

Bom, estou fazendo sistema de, excluir, aceitar, rejeitar e queria saber o método mais seguro pra fazer alterações no BD.

Quando forem explicar qual é a mais segura, deixem uma explicação do porquê, preciso muito disso.

Pois percebi que o facebook não passa nada pela url, quando, você vai excluir alguma postagem, e tals.

Obrigado a todos :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Método GET passa pelo URL, Método POST passa por trás em conexao direta no servidor...

Então qual você escolhe.. você é o programador!!!

Eu sei disso, só quero saber pra você(s) qual a mais segura pois, como dito, no facebook eles não passam dados nenhuma pela url.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não existe "segurança" em nenhum dos 2 métodos, logo eles possuem o mesmo nível. Esta camada de "segurança" precisa ser implementada em ambos os casos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não existe "segurança" em nenhum dos 2 métodos, logo eles possuem o mesmo nível. Esta camada de "segurança" precisa ser implementada em ambos os casos.

Como fazer uma proteção fiel em um GET que é passado um id para efetuar modificações e até mesmo deletar dados no DB?

Pois, a pior coisa é você ter um sistema e ele ser vulnerável e, qualquer um poder excluir dados dos outros usuários.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Wesley F Souza

 

O Prog está correto. Veja a minha resposta sobre a criptografia de dados via GET. Só porque não vemos os dados sendo enviados, não quer dizer que seja mais seguro, eles só são mais difíceis de descobrirem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com um firebug da vida aí também é muito fácil saber quais os dados enviados por POST também, não se iludam...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com um firebug da vida aí também é muito fácil saber quais os dados enviados por POST também, não se iludam...

 

Não entendi... quem envia dados via GET ou POST é o cliente e não tem problema algum se esse cliente ver os dados que ele mesmo está enviado... o risco é esses dados serem interceptados por terceiros.

 

...a não ser que o "programador" seja estúpido ao ponto de colocar informações sensíveis sobre as configurações do servidor ou do SGBD em campos input hidden, por exemplo.

 

 

Wesley F Souza, se você quer segurança na comunicação entre o cliente e o servidor, use SSL/TLS com criptografia de 256-bit.

 

:seta: http://www.comodobr.com/

 

Seria bom você esclarecer quais informações você quer passar, tanto por URL quanto por POST.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Não entendi... quem envia dados via GET ou POST é o cliente e não tem problema algum se esse cliente ver os dados que ele mesmo está enviado... o risco é esses dados serem interceptados por terceiros.

Se é só o cliente que pode ver, qual o problema de enviar via GET então???

Você está se esquecendo que aproximadamente 50% dos computadores do mundo são zumbis, estão infectados com algum tipo de malware. Enquanto você acessa um conteúdo, outra pessoa pode estar monitorando. Se for uma requsição post, o invasor pode monitorá-la também.

 

Fora isso, o problema é se o invasor tiver acesso ao servidor, aí nem POST nem GET nem banco de dados nem sua aplicação estarão a salvo.

 

Outra maneira é ele tentar acessar os dados enquanto são transmitidos, o que é mais complicado, mas não muda nada, os dados POST estão embutidos no corpo da requisição, ele terá acesso do mesmo jeito.

 

GET e POST existem por razões semânticas da requisição, o protocolo HTTP não fornece qualquer tipo de segurança (ao contrário do HTTPS), então cabe ao programador criar essa camada em sua aplicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fora isso, o problema é se o invasor tiver acesso ao servidor, aí nem POST nem GET nem banco de dados nem sua aplicação estarão a salvo.

 

O que eu disse foi em relação a segurança do servidor. Se o cliente está infectado por malware, problema dele. O que importa é que minha aplicação esteja a salvo. :)

 

Mas invasor só teria acesso ao servidor, através do malware instalado no cliente, se eu cometesse a burrice de deixar informações sensíveis do servidor aparecerem para o cliente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depende em qual projeto você está trabalhando e o que pretende fazer.

 

Se for dados que o usuário nao pode ver de forma alguma ou alterar, por ex: uma loja virtual que passa o preço da compra por get, ai não rola. Os dois são bons só saber usar :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

como pessoal disse get ou post estão na mesma camada, ambos podem ser visualizados facilmente.

 

talves sua duvida seja com injeção de codigos maliciosos na sua aplicação por meio de POST ou GET..

 

Se for isso, ja o PHPIDS resolve muito problemas de xss e injections e outras coisas mais!

Compartilhar este post


Link para o post
Compartilhar em outros sites

POST E GET ambos da para trambique malisioso

 

pra fica certo e seguro

 

basta usar funções anti injection antes do post ou get problema resolvido

é só fazer uma validação certa que não terá problemas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não pode impedir que o usuário altere os dados, afinal, é este usuário que está enviando esses dados.

 

O que você precisa fazer é criar mecanismos que filtrem e validem esses dados que o usuário enviou no servidor. Procure por "anti-injection", "phpids", como o Luis Paullo citou.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Alguém poderia me dar um exemplo de como: Proteger e criptografar os dados passado por GET? Assim fica mais difícil do usuário malicioso alterar os dados via URL!!!

Se o cara quer tentar invadir seu sistema, obviamente ele sabe alguma coisa de computação, então GET ou POST tanto faz, ele vai conseguir invadir se você não tiver uma camada de segurança em cima...

 

Ainda assim, se você quiser encriptar dados na URL pode usar base64_encode/decode ou hashes como MD5 ou SHA1.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nem GET e nem POST são seguros, ambos podem ser manipulados pelo cliente. A segurança vem do seu sistema, não se iluda com pessoas que dizem que o POST á confiável, tudo depende da sua aplicação. Você deve filtrar e validar dados no lado do servidor, e não esqueça que só existe o SQL INJECTION, pense que existe inúmeros tipos de ataques, XSS INJECTION, por exemplo, e outros, muitos outros. Para criptografar os dados enviado via GET, veja:

 

$string = base64_encode("Wanderson Valério");
// O valor de string, será: V2FuZGVyc29uIFZhbMOpcmlv

$string = base64_decode("V2FuZGVyc29uIFZhbMOpcmlv");
// O valor de string, será: Wanderson Valério

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tanto a pergunta, quanto todas as respostas dadas aqui, demonstram completo desconhecimento do protocolo HTTP. Sugiro fortemente a leitura :seta: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

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.