voopys 0 Denunciar post Postado Outubro 31, 2014 Olá pessoal depois de muito pesquisar resolvi me escrever para tirar uma duvida com as mentes desenvolvidas nesse fórum, vamos lá: acontece que tenho uma pagina em PHP chamada senha.php que existe a apenas os dados: <?php $senha = 'senhaaqui'; ?> e tenho outra pagina chamada pegasenha.php onde tem os seguintes dados: <?php require ("senha.php");?> <?php echo $senha; ?> A pergunta é fácil porem eu não consigo ter certeza: vamos supor que algum de vocês queira roubar a senha de acesso, como vocês tendo apenas o meu endereço da senha.php exemplo www.meusite.com.br/senha.php conseguirão imprimir os dados contidos dentro da variável $senha e descobrir qual é a senha? Para ficar mais claro resolvi colocar uma pagina senha.php e desafio que algum de vocês consigam descobrir a senha que esta dentro da variável $senha , o endereço é: http://www.wiltecmg.com.br/senha.php , e depois por gentileza diga como conseguiu descobrir qual era a senha. Um abraço a todos e é um prazer disafia-los! Compartilhar este post Link para o post Compartilhar em outros sites
Diogo Camargo 18 Denunciar post Postado Outubro 31, 2014 Você está com uma visão completamente distorcida em relação a proteção de dados. Compartilhar este post Link para o post Compartilhar em outros sites
voopys 0 Denunciar post Postado Outubro 31, 2014 Você está com uma visão completamente distorcida em relação a proteção de dados. Oi Diogo, não estou querendo proteger os dados mais sim apenas saber o quanto um simples código pode se descoberto por pessoas com mais "inteligencia", gostaria de saber se é possível a descoberta dessa variável? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Outubro 31, 2014 O seu tópico duplicou: http://forum.imasters.com.br/topic/528619-include-ou-requerie-externo/ Compartilhar este post Link para o post Compartilhar em outros sites
Diogo Camargo 18 Denunciar post Postado Outubro 31, 2014 saber o quanto um simples código pode se descoberto por pessoas com mais "inteligencia", gostaria de saber se é possível a descoberta dessa variável? É também uma questão de "inteligência" saber que o PHP é executado no servidor, por isso, é impossível ver variáveis no navegador. Não é o armazenamento o problema e sim a criptografia php.net/crypt Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Cardial 2 Denunciar post Postado Outubro 31, 2014 Certo voopys. Minha única dúvida é por que você mantém um valor fixo nessa variável. Por que não guardar a senha em um DB e criptografada? Depois bastará executar a query que comparará a senha informada no site com a que está gravada no banco de dados. ### Tabela com as senhas e usuarios CREATE TABLE usuarios( id SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT, nome VARCHAR(20) NOT NULL, senha CHAR(128) NOT NULL, PRIMARY KEY (id) ) TYPE InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; Depois você alimenta essa tabela; <?php $user = lucascardial; $senhaAberta = 123456; $senhaCodificada = md5($senhaAberta); // a senha será codificada para: e10adc3949ba59abbe56e057f20f883e; $sql = "INSERT IN TO `usuarios` (`nome`, `senha`) VALUES ('$user', '$senhaCodificada')"; mysqli_query($sql); ?> e por fim, você pode trazer a senha da database que estará criptografada, comparando com a senha informada. <?php $senhaGet = 123456; $senhaInformada = md5($senhaGet); //consulta o banco de dados se existe algum registro com o mesmo valor da senha informada. $sql = "SELECT `nome`, `senha` FROM usuarios WHERE `senha` = '$senhaInformada'"; $consulta = mysqli_query($sql); $vetor = mysqli_fetch_array($consulta); $senha = $vetor["senha"]; //E por fim, pode fazer uma simples condição: if($senha != $senhaInformada){echo "Senha inválida"; exit;} else{ echo "Senha correta";} ?> Bem, de toda forma se isso não for o que você procura, atente as dicas dos outros usuários: criptografe sua senha. Assim, mesmo que alguém consiga por algum meio descobrir o valor de sua senha, não poderá compreender o valor real. Compartilhar este post Link para o post Compartilhar em outros sites
voopys 0 Denunciar post Postado Outubro 31, 2014 É também uma questão de "inteligência" saber que o PHP é executado no servidor, por isso, é impossível ver variáveis no navegador. Não é o armazenamento o problema e sim a criptografia php.net/crypt Diogão eu sou bem leigo a respeito do PHP e confesso que sou bem "desinteligente" então uma pergunta simples existe alguma maneira de você ou alguma pessoa "facilmente" descobrir essa variável? não entendo sobre criptografia, só gostaria de saber o caminho que uma pessoa vai ter que seguir até chegar a descoberta da variável...desculpe pela "burrice". Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Cardial 2 Denunciar post Postado Outubro 31, 2014 voopys, entenda que: O PHP é uma linguagem que roda no servidor (Máquina onde está hospedado seu site); Digamos que nativamente é impossível alguém descobrir o valor de sua variável. O que pode ocorrer é você deixar alguma brecha na troca de informações, ai sim isso poderá complicar. Porém no comando: <?php $senha="123456"?> É impossível descobrir o valor. Uma boa criptografia é a md5. Para isso basta usar desta forma: $criptografar = "Lucas"; $criptografado = md5($criptografar); Compartilhar este post Link para o post Compartilhar em outros sites
Diogo Camargo 18 Denunciar post Postado Outubro 31, 2014 MD5 não foi criado para criptografia $password = '123'; $salt_length = 16; $salt_prefix = '2a'; /** * Proteção contra milhões de tentativas */ $cost = '08'; $salt = strtr( base64_encode( mcrypt_create_iv($salt_length, MCRYPT_DEV_URANDOM) ), '+', '.'); $salt = str_replace('=', null, $salt); $hash = crypt($password, '$'. $salt_prefix .'$' . $cost . '$' . $salt . '$'); Salve $hash em um banco de dados ou como vc não sabe trabalhar com bancos, faça um teste salvando até mesmo neste seu arquivo senha.php Para testar é muito simples if (crypt($password, $hash) == $hash) { // Senha correta } Compartilhar este post Link para o post Compartilhar em outros sites
ExtremsX 58 Denunciar post Postado Outubro 31, 2014 Na realidade é possível sim fazer um include ou require de um arquivo externo (URL), mas para isso você teria de alterar a opção allow_url_include do PHP que por padrão está desativada. Não é recomendado ativar ela a não ser que você saiba o que está fazendo. Sobre criptografar sua senha, use a função do próprio PHP pra isso: http://au2.php.net/manual/pt_BR/function.password-hash.php Sobre a pessoa ver o conteúdo do seu arquivo, isso só será possível se você der um ECHO, ou se você não configurar o apache para interpretar o arquivo, caso isso aconteça o APACHE vai exibir o conteudo do arquivo no navegar, acontece muito isso com arquivos .inc. http://goo.gl/79gbIY Lembre de desativar o register_globals que pode causar algumas brechas de segurança Compartilhar este post Link para o post Compartilhar em outros sites
Diogo Camargo 18 Denunciar post Postado Outubro 31, 2014 Sobre criptografar sua senha, use a função do próprio PHP pra isso: http://au2.php.net/manual/pt_BR/function.password-hash.php Ainda é cedo para usar password_hash quase todos os hosts compartilhados ainda estão no PHP 5.3, o exemplo acima é compatível, ou seja, password_hash da suporte para crypt, deixando-nos aliviados em continuar usando crypt até que estejamos seguros de que o PHP 5.5 está em uso geral. Compartilhar este post Link para o post Compartilhar em outros sites
voopys 0 Denunciar post Postado Outubro 31, 2014 Galera gostaria de agradecer de Coração a ajuda de todos, Diogo,ExtremsX,Lucas pela ajuda vcs não sabem a mão que estão dando a mim e a um monte de pessoas iniciantes que vão ver esse post então resumindo eu entendi que: Ninguem consegue dar um incluide ou requere externamente "desde que " eu altere a opção allow_url_include no meu php , aprendi que a melhor forma de guardar as $variaveis com senha é criptografando-as mais afinal posso ou não utilizar o md5 me pareceu mais fácil utiliza-la do que o password_hash? e para por fim a esse topico e que para todos que lerem esse tópico: É POSSÍVEL DAR INCLUIDE OU REQUIRE EXTERNO E PEGAR UMA VARIÁVEL QUE ESTEJA FORA DO MEU SERVIDOR? Compartilhar este post Link para o post Compartilhar em outros sites
ExtremsX 58 Denunciar post Postado Outubro 31, 2014 Ainda é cedo para usar password_hash quase todos os hosts compartilhados ainda estão no PHP 5.3, o exemplo acima é compatível, ou seja, password_hash da suporte para crypt, deixando-nos aliviados em continuar usando crypt até que estejamos seguros de que o PHP 5.5 está em uso geral. Verdade, caso você ache complicado usar a biblioteca Crypt você pode usar combinações de hash, como: md5(sha1($senha) . 'qualquer coisa estática aqui') Isso já traz uma segurança enorme para sua aplicação (esse codigo é aleatório), lembre de forçar os usuários a usarem senha de no minimo 8 dígitos que contenham combinações de letras e numero. Galera gostaria de agradecer de Coração a ajuda de todos, Diogo,ExtremsX,Lucas pela ajuda vcs não sabem a mão que estão dando a mim e a um monte de pessoas iniciantes que vão ver esse post então resumindo eu entendi que: Ninguem consegue dar um incluide ou requere externamente "desde que " eu altere a opção allow_url_include no meu php , aprendi que a melhor forma de guardar as $variaveis com senha é criptografando-as mais afinal posso ou não utilizar o md5 me pareceu mais fácil utiliza-la do que o password_hash? e para por fim a esse topico e que para todos que lerem esse tópico: É POSSÍVEL DAR INCLUIDE OU REQUIRE EXTERNO E PEGAR UMA VARIÁVEL QUE ESTEJA FORA DO MEU SERVIDOR? Como eu disse, sim é possível usando allow_url_include Compartilhar este post Link para o post Compartilhar em outros sites