É inseguro usar $_GET?

HTML

PHP

25/10/2016

Pessoal, no caso dos formulários, é ruim usar o method get?

Eu vejo sempre o pessoal falando para usar o method post.

Porque isso? Tem alguma vulnerabilidade muito grande no GET?
Larissa Aguiar

Larissa Aguiar

Curtidas 0

Melhor post

Tiago Dias

Tiago Dias

26/10/2016

Olha, acredito que fazendo o tratamento do parâmetro que você recebe, você reforça sua segurança.
GOSTEI 5

Mais Respostas

Larissa Aguiar

Larissa Aguiar

25/10/2016

Rs, como programação não é minha área "principal" eu fico um pouco boiando com algumas coisas...

Tiago, nesse caso isso seria esse SQL Injection que todo mundo fala?
GOSTEI 2
Fernando Henrique

Fernando Henrique

25/10/2016

Larissa , minha opinião.

Eu acho melhor utilizar sempre o $_POST, por ficar mais "escondido".

Mas há situações que o uso do $_GET é viável, como por exemplo, mostrar na url qual em página de um determinado artigo, por exemplo, o usuário está.

O que importa nesses casos é fazer o tratamento necessário para tais parâmetros, de modo que a segurança não venha a ser comprometida.

No caso de você usar, você deve estar atenta a isso.

Espero ter ajudado.
GOSTEI 4
Frank Rocha

Frank Rocha

25/10/2016

Com certeza, o $_GET fica armazenado na URL, por mais que você trate os parâmetros sempre será mais seguro usar o $_POST.
GOSTEI 4
Larissa Aguiar

Larissa Aguiar

25/10/2016

Hum gente, valeu pela dica.

Vou evitar o uso do $_GET então.
GOSTEI 2
Diego Silva

Diego Silva

25/10/2016

Olá Larissa, tudo bem?

Só para complementar, eu aconselharia você usar o $_POST também. Não é que você não possa usar o $_GET. Até porque existem casos que você pode fazer um bom uso do parâmetro na url, como já foi citado pelo colega Fernando, numa situação de paginação, ou até mesmo numa situação em que precisa se definir uma categoria na url, enfim, o $_GET cai muito bem em alguns casos.

No caso, se eu pudesse optar por um dos dois, optaria pelo $_POST.

Mas independentemente do que você vier a usar, você deve fazer o tratamento de segurança. De nada adianta usar $_POST se vocÊ não tratar o parâmetro.

Só não esquece isso, tratamento de segurança é muito importante, ainda mais nos dias de hoje :)

Espero ter ajudado.
GOSTEI 3
Rafael Cunha

Rafael Cunha

25/10/2016

O get é o padrão quando é omitido o method no form. acho que não deve abrir mão do get, ele e o post são métodos de passagem de parâmetro entre url´s ou consumo da própria url, cada um com suas vantagens e desvantagens. na hora do desenvolvimento se julga o melhor. Estética da url, Volume para passar, lógica,...
um exemplo que foi citado é de passar valor via link à uma section, um iframe,...

O tratamento deve ser feito sempre para ambos por questão de segurança e rota para erro.
GOSTEI 2
Robson Cavalcante

Robson Cavalcante

25/10/2016

O get é o padrão quando é omitido o method no form. acho que não deve abrir mão do get, ele e o post são métodos de passagem de parâmetro entre url´s ou consumo da própria url, cada um com suas vantagens e desvantagens. na hora do desenvolvimento se julga o melhor. Estética da url, Volume para passar, lógica,...
um exemplo que foi citado é de passar valor via link à uma section, um iframe,...

O tratamento deve ser feito sempre para ambos por questão de segurança e rota para erro.


Ótima observação!

Larissa, eu não tenho nada contra o uso do $_GET.

Eu no caso tenho funções que fazem tratamento tanto de variáveis GET e POST.

Concordo com todos os colegas assim que disseram que o tratamento de segurança deve ser feito :)
GOSTEI 2
Larissa Aguiar

Larissa Aguiar

25/10/2016

Obrigada pela atenção Robson! :)
GOSTEI 0
Felipe Paz

Felipe Paz

25/10/2016

Apenas complementando o que o pessoal já disse. Depende de qual operação você deseja fazer ou retornar no/do servidor. Se for um formulário de cadastro de uma loja, por exemplo. Lá terão campos como senha, cartão de crédito e etc. Não seria lógico passar tudo isso via GET (url), até porque estes dados ficariam armazenados no cache do navegador e qualquer um teria acesso ao teu cadastro já que senha, usuário e tudo mais estaria salvo lá. Então, neste caso, deve-se ser passado via post, onde os dados são enviados "por debaixo do tapete". Agora, eu clico no link de uma notícia e quero ver esta notícia, aí sim utilizo o método get, já que esta informação está passada via url e eu, futuramente, pretendo acessar essa notícia novamente. Então, basta eu digitar www.meusite.com.br/minhanoticia.
Então, tudo vai depender da circunstância mas em vias de regra, post para formulários, get para urls que não necessitam que os dados sejam omitidos.
GOSTEI 4
Calebe Menezes

Calebe Menezes

25/10/2016

Concordo com as opiniões dos colegas acima!
GOSTEI 1
Iago Gomes

Iago Gomes

25/10/2016

Apenas sintetizando as informações acima, Larissa: caso seu form tenha informações confidenciais/sigilosas é recomendável utilizar o POST e não esqueça de tomar as medidas de segurança contra as sql injection. Porém hj em dia ouvimos muito falar em url's amigáveis, e o GET ajuda muito nesses casos, também em situações onde temos uma lista de registros e ao clicar num deles seu id é enviado na url.
GOSTEI 3
Eduardo Chaves

Eduardo Chaves

25/10/2016

Concordo. O Envio por POST deve ficar para conteúdo que requer um nível de segurança maior como dados pessoais, logins e etc.

O GET pode ser utilizado por exemplo para transferencia de dados menos sensíveis, como uma url para redirecionamento por exemplo.

um abraço.
GOSTEI 1
POSTAR