Ir para conteúdo

Arquivado

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

wneo

Segurança URL Formulário ID via input

Recommended Posts

Bom dia!

 

Estou criando esse tópico com objetivo de discutir formas de segurança no php, voltada a transmissão de ID por formulários e URL.

 

1- Exemplo1 (form ID input) :

 

- Tenho uma tabela chamada usuarios com as colunas id_usuario - nome - senha / (onde ficam os usuários que acessam o site, e são logados na sessão).

- Tenho uma tabela chamada produtos com as colunas id_produto - id usuario - produto - data - cor - preço / (onde os usuários cadastram seus produtos).

 

- Então tenho uma página com um formulário para cadastrar os produtos.

- Nesse formulário utilizo um input hidden para que o id_usuario seja cadastrado na tabela produtos dessa forma:

 

<input type="hidden" value="<?php echo $_SESSION['id_usuario']; ?>" name="id_usuario">

 

- Qual outra forma de se fazer isso para ficar mais seguro e continuar funcionando a questão de registrar o id do usuario na sessão em outra tabela?

 

2 - Exemplo 2 (URL):

 

Em relação a URL, quando visualizo um conteúdo está sendo transmitido dessa forma na barra de endereços:

 

pagina.php?id_emp=4

 

- Como faço para corrigir a questão do id estar aparecendo?

 

- Aproveitando a questão da URL e barra de endereços, como faço para que o nome das páginas não apareçam na barra de endereços, por exemplo aparecer somente o nome do site www.site.com.br/ e nada após a barra mesmo quando as mesma estão sendo acessadas?

 

Obrigado aí pessoal....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quanto ao Exemplo 1, este <input> é desnecessário, pois a $_SESSION do usuário fica ativa enquanto ele estiver logado no sistema, portanto em qualquer pagina do php você pode utilizar o valor guardado na $_SESSION sem precisar passar este dado através do <input>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue algumas dicas:

 

  1. O usuário da sessão você pode salvar direto na sua rotina de inserção, não há necessidade de receber via post, ela é uma variável session e você pode acessar de qualquer página.
  2. Não vejo problema em passar um id via get, mas para realmente não haver problema você deve tratar todos os dados recebidos via GET para não sofre ataques como SQL Injection.
  3. Para seu site poder ficar sem aparecer a página você tem que fazer um load das páginas via javascript, mas não recomendo, pois se der um refresh vai voltar sempre para a home.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia pessoal,

 

Desculpem o atraso...Dias turbulentos...

 

Obrigado pelos interessados aí apoiando!!!

 

Com relação ao exemplo 2:

 

pagina.php?id_emp=4

 

Como posso ocultar esse id, para não sofrer um injection por exemplo?

Alguém poderia mostrar um exemplo, usando uma encriptação md5? Ou alguém sugere uma outra saída?

-Já ouvi falar na questão de colocar no código da seguinte forma:

$id = (int)$GET_['id'];

-Adicionando o int entre parênteses para proteger. Mas na visualização da URL continua a mesma coisa quando apliquei esse método...então creio q não obtive nenhum resultado...

 

Quem souber, ajuda num exemplo aí pessoal, brigadão!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia pessoal,

 

Desculpem o atraso...Dias turbulentos...

 

Obrigado pelos interessados aí apoiando!!!

 

Com relação ao exemplo 2:

 

pagina.php?id_emp=4

 

Como posso ocultar esse id, para não sofrer um injection por exemplo?

Alguém poderia mostrar um exemplo, usando uma encriptação md5? Ou alguém sugere uma outra saída?

-Já ouvi falar na questão de colocar no código da seguinte forma:

$id = (int)$GET_['id'];

-Adicionando o int entre parênteses para proteger. Mas na visualização da URL continua a mesma coisa quando apliquei esse método...então creio q não obtive nenhum resultado...

 

Quem souber, ajuda num exemplo aí pessoal, brigadão!

 

Não tem como ocultar.

 

esse código é só uma forma de garantir que o que está sendo passado na sua variável get seja um número inteiro

$id = (int)$GET_['id'];

Dá uma estudada nos tipos de variáveis para entender melhor como funcionam.

http://php.net/manual/pt_BR/language.variables.external.php

 

Prevenção do sql injection

http://wiki.locaweb.com.br/pt-br/Como_se_proteger_do_SQL_Injection

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia pessoal,

 

Desculpem o atraso...Dias turbulentos...

 

Obrigado pelos interessados aí apoiando!!!

 

Com relação ao exemplo 2:

 

pagina.php?id_emp=4

 

Como posso ocultar esse id, para não sofrer um injection por exemplo?

Alguém poderia mostrar um exemplo, usando uma encriptação md5? Ou alguém sugere uma outra saída?

-Já ouvi falar na questão de colocar no código da seguinte forma:

$id = (int)$GET_['id'];

-Adicionando o int entre parênteses para proteger. Mas na visualização da URL continua a mesma coisa quando apliquei esse método...então creio q não obtive nenhum resultado...

 

Quem souber, ajuda num exemplo aí pessoal, brigadão!

E com o uso de URLs Amigávies...alguém saberia me dizer como seria?

Compartilhar este post


Link para o post
Compartilhar em outros sites

esconder não vai ter jeito, já que você precisa passá-lo via GET

 

tanto usando a url normal pagina.php?id_emp=4 ou com url amigavel tipo: pagina/4 .. sempre esse numero vai aparecer

 

o que você pode fazer é encriptá-lo para ele não aparecer tão explicito

 

Porém além de tudo isso o mais aconselhável é fazer o tratamento dessa váriavel antes de usá-la, tanto para ataques, quanto para prevenir que ele seja mesmo do usuário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

esconder não vai ter jeito, já que você precisa passá-lo via GET

 

tanto usando a url normal pagina.php?id_emp=4 ou com url amigavel tipo: pagina/4 .. sempre esse numero vai aparecer

 

o que você pode fazer é encriptá-lo para ele não aparecer tão explicito

 

Porém além de tudo isso o mais aconselhável é fazer o tratamento dessa váriavel antes de usá-la, tanto para ataques, quanto para prevenir que ele seja mesmo do usuário.

Oi diego,

como ficaria o tratamento dessa variável, aplicando uma encriptação md5?

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.