wneo 5 Denunciar post Postado Agosto 28, 2014 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
mikael.php 2 Denunciar post Postado Agosto 28, 2014 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
rockrgo 138 Denunciar post Postado Agosto 28, 2014 Segue algumas dicas: 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. 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. 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
wneo 5 Denunciar post Postado Setembro 3, 2014 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
rockrgo 138 Denunciar post Postado Setembro 3, 2014 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
wneo 5 Denunciar post Postado Setembro 4, 2014 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
Diego Ferraz 0 Denunciar post Postado Setembro 4, 2014 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
wneo 5 Denunciar post Postado Setembro 4, 2014 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
wneo 5 Denunciar post Postado Setembro 16, 2014 Reescrevendo o htaccess pode ser uma boa saída para isso, não? Alguém conseguiria exemplificar? Compartilhar este post Link para o post Compartilhar em outros sites