Jump to content
Sign in to follow this  
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....

Share this post


Link to post
Share on other 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>

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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!

Share this post


Link to post
Share on other 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

Edited by rockrgo

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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.

Edited by Diego Ferraz

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other sites

Reescrevendo o htaccess pode ser uma boa saída para isso, não? Alguém conseguiria exemplificar?

Edited by wneo

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.