Biel. 9 Denunciar post Postado Dezembro 26, 2014 codificar - criptografar id na url bom dia a todos. Direto ao ponto. Pessoal abaixo temos uma tabela e um menu dinamico. quero muito codificar, criptografar o id do banco de dados que é passado na url. Gostaria muito de uma luz nesse sentido. Obrigado! tabela_aprendiz id nome 1 curso_A 2 curso_B 3 curso_C <?php $sql = mysql_query("SELECT * FROM tabela_aprendiz")or die (mysql_error()); while($linha = mysql_fetch_array($sql)){ $id = $linha['id']; $nome = $linha['nome']; ?> <a href="index.php?id=<?php echo $id?>"><?php echo $nome?></a></li> <?php } ?> no link curso_A exibe na url online -> www.seusite.com.br/index.php?id=1 no link curso_B exibe na url online -> www.seusite.com.br/index.php?id=2 no link curso_C exibe na url online -> www.seusite.com.br/index.php?id=3 no link curso_A exibe na url localhost -> localhost/nomedapasta/index.php?id=1 no link curso_B exibe na url localhost -> localhost/nomedapasta/index.php?id=2 no link curso_C exibe na url localhost -> localhost/nomedapasta/index.php?id=3 Pessoal, gostaria que não fosse possível o colega saber qual id está sendo passado na url. Tipo: se os três ids que é passado na url estiver com aspecto conforme exemplo abaixo, então as coisas ficará mais dificil para o atacante. www.seusite.com.br/index.php?id=c4ca4238a0b923820dcc509a6f75849b www.seusite.com.br/index.php?id=c81e728d9d4c2f636f067f89cc14862c www.seusite.com.br/index.php?id=a87ff679a2f3e71d9181a67b7542122c Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Guima 164 Denunciar post Postado Dezembro 26, 2014 A sua criptografia entra na exibição do link: <a href="index.php?id=<?php echo encryptId( $id )?>"><?php echo $nome?></a></li> Dentro do seu método (encryptId) você cria uma regra para gerar um md5. Porém, como esta é um criptografia de mão única, você vai precisar aplicar a mesma regra na hora da consulta, o que pode afetar a performance, acredito eu. Compartilhar este post Link para o post Compartilhar em outros sites
Biel. 9 Denunciar post Postado Dezembro 26, 2014 A sua criptografia entra na exibição do link: <a href="index.php?id=<?php echo encryptId( $id )?>"><?php echo $nome?></a></li> Dentro do seu método (encryptId) você cria uma regra para gerar um md5. Porém, como esta é um criptografia de mão única, você vai precisar aplicar a mesma regra na hora da consulta, o que pode afetar a performance, acredito eu. Lucas, obrigado por responder. Gostaria muito de um exemplo prático de como fazer isso. já tentei com sh1, md5 - consegui criptografar o id do banco de dados que passa na url . O problema é que o conteudo não exibe com id criptografado tentei assim -> $idmenu = sha1($linha['idmenu']); tentei assim -> $idmenu = md5($linha['idmenu']); O problema é que o conteudo não exibe com id criptografado Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Dezembro 26, 2014 Ai na hora de exibir, vc precisa "reverter". md5 e sha1 não são reversíveis. E é bem "inútil" isso ai.. não proverá nenhuma segurança ao sistema. Compartilhar este post Link para o post Compartilhar em outros sites
Biel. 9 Denunciar post Postado Dezembro 26, 2014 Ai na hora de exibir, você precisa "reverter". md5 e sha1 não são reversíveis. E é bem "inútil" isso ai.. não proverá nenhuma segurança ao sistema. William, obrigado por responder . Gostaria muito de um exemplo prático de como reverter o id criptografado para que o conteudo seja exibido. Obrigado1 Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Dezembro 26, 2014 Não é possível, sha1 e md5 não são reversíveis. Sua única alternativa é gravar no banco o ID já "criptografado", e então na hora de exibir, comparar coisas iguais, o ID criptografado da url, com o criptografado q já está no banco. Porém, note que isso só deixará o sistema lento, pois se vc não criar um índice para esse campo, o banco precisará fazer um fullscan para encontrar o teu id. E, como falei anteriormente, não faz nenhuma diferença em quesito de segurança. Compartilhar este post Link para o post Compartilhar em outros sites
Biel. 9 Denunciar post Postado Dezembro 26, 2014 entendi William. Veja: Tenho visto na internet urls do tipo www.seusite.com.br/index.php?id=c4ca4238a0b923820dcc509a6f75849b3820dcc509a6f75849b3820dcc509a6f75849b talvés usando base64_encode e base64_decode gostaria de ter uma base não o codigo completo de como se faz isso. Já rodei a internet inteira e não encontrei nada parecido. Depois que eu consegui criar, decidirei se vale ou não apena criptografar o id que passa na url. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Dezembro 26, 2014 Eu já disse como fazer. Leia novamente meus posts. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 26, 2014 Biel., eu não entendo por que você gosta tanto de duplicar seus próprios tópicos. Você já perguntou sobre isso nestes tópicos http://forum.imasters.com.br/topic/529655-encriptar-url/ http://forum.imasters.com.br/topic/528790-encryptarcriptografar-url/ E as respostas foram as mesmas. E não é a primeira vez que vejo você duplicando seus tópicos. Você está apenas fazendo flood. Se persistir, teremos de fechar todos esses seus tópicos duplicados. Compartilhar este post Link para o post Compartilhar em outros sites
Aprendiz7 0 Denunciar post Postado Abril 19, 2018 Tbm gostaria de implementar essa segurança em todos os ids!! Estava vendo algumas criptografia que sao reversíveis mais tbm podem ser burladas. Então existe alguns algoritmos que fazem a criptografia com senhas!! Assim fica difícil saber qual algoritmo e a senha usada. Ou fazer igual o Willian falou guardar o id criptografado, mas acho isso inviável.. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Abril 19, 2018 Crie um novo tópico para tratar a sua dúvida, conforme descrito nas Orientações e Regras do Fórum de PHP. De qualquer forma, não irá prover segurança nenhuma, conforme já foi discutido aqui mesmo neste tópico. Compartilhar este post Link para o post Compartilhar em outros sites
Maykel-ctba 233 Denunciar post Postado Abril 19, 2018 @Aprendiz7 eu hoje utilizo JWT para enviar tokens e parametros "criptografados" pela URL. Através de uma chave, é possível reverter isso. Veja o link abaixo e um exemplo que montei pra ti. https://github.com/firebase/php-jwt Exemplo de criptografia: // * Gera o token com JWT $jwtArray = array("ID" => "5"); // EXEMPLO COM ID 5 $jwtArray = (object) $jwtArray; // * Gera o JWT $token = JWT::encode($jwtArray, TOKEN_JWT); // * Redireciona para a tela com dados de pagamento header("Location: /produto?t=".$token); Exemplo de recuperação da informação: $jwt = JWT::decode($_GET['t'], TOKEN_JWT, array('HS256')); // * T é o parâmetro passado na URL, e o TOKEN_JWT é uma chave que você escolherá para criptografar as coisas // * Transforma o objeto decodificado em array $arrayInfo = get_object_vars($jwt); print_r($arrayInfo); // * Vai retornar aquele ID. Compartilhar este post Link para o post Compartilhar em outros sites