Title: Codigo Fonte em PHP de um projecto de um site de Trafic Exchange Post by: ZenJB on January 11, 2016, 09:29:36 PM Olá Mundo,
Eu estou desenvolvendo um site de Trafic Exchange feito em PHP. No inicio ia fazer host do site mas o meu pc deu peça Então, tornei o site OpenSource para que qualquer um que queira começar um site deste tipo possa ter um grande impulso. Fiz upload de todos os arquivos no GitHub. Website oficial deste script: http://zenjb.tk/project/TXZone/ REQUISITOS - Apache - MySQL - Msmtp - PHP V5.5.13 - Phpmyadmin - 2 Contas no BlockChain Como configurar o site? 1> Configure o Apache, MySQL, msmtp e o PHP 2> Crie 2 contas carteira no Blockchain 3> Ative o API em ambos as carteiras do BlockChain 4> Crie uma base de dados no MySQL chamada txzone atraves do phpmyadmin 5> Importar o arquivo database.xml para a base da dados txzone 6> Configure o ficheiro db.php em /scripts 7> Autorize o site a acessar o API de suas carteiras Como resetar as tarefas concluidas pelos usuários (deve ser feito diariamente e a uma hora fixa para permitir que os usuário façam as suas tarefas no dia seguinte): 1> Em phpmyadmin vá a txzone -> tasks e apague os dados Como activar os levantamentos de Bitcoin: 1> Transfira os Bitcoin da conta onde são depositados para a conta que vai enviar Bitcoin para o utilizador 2> Em phpmyadmin abra a base de dados txzone -> webcontrol e defina o valor de pagamento 0-1 Atenção: Quando atualizar a versão do script é possivel que perca os dados na base de dados. Portanto, certifique-se de fazer o backup de tudo antes de atualizar! Se faltar alguma coisa ou quiser que adicione alguma funcionalidade, por favor mande mensagem privada Funcionalidade por acrescentar: -> Painel Administrativo -> Oportunidade de escolher onde vai guardar as Bitcoins -> Anti SQL-Injection em todas as páginas -> Encriptação do código fonte -> Compatibilidade com MySQL e MySQLi -> Compatibilidade com todas as versões do PHP -> Pagina para recuperação da palavra passe -> Escolha do método de levantamento dos Bitcoins ( Via FaucetBox ou Via Instantânea ) -> Envio automático de Email ao comprador dos anúncios quando os anúncios já foram todos vistos -> Estatísticas de visualizações dos anúncios (Número de anúncios vistos por dia ou por mês, Anúncios comprados) -> "Ganhos no Site" - Comparação do número de anúncios comprados com o numero de anúncios vistos -> Sistema de pagamentos de Bitcoin totalmente Automatizado -> Outros idiomas (Português (Portugal), Francês, Espanhol) Por cada 0,2542 BTC doados, vou lançar um update ao script Montante já recebido: 0.00005500 BTC Se você usar este código-fonte para outros fins, por favor atribua-me os devidos créditos Link do codigo fonte: http://zenjb.tk/ Email privado: 0zenjb0@gmail.com Disclaimer: I am not responsible if you or someone loses Bitcoins, or if you get hacked dued to the lack of security or dued to another thing that may happen. This is a project in development. So, you will experience bugs, lack of feactures, and many other things... USE IT AT YOUR OWN RISK. Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: girino on January 11, 2016, 09:31:24 PM Olá Mundo, Eu estou desenvolvendo um site PTC feito em PHP. No inicio ia fazer host do site mas o meu pc deu peça Então, tornei o site OpenSource para que qualquer um que queira começar um site deste tipo possa ter um grande impulso. Fiz upload de todos os arquivos no GitHub. Link do GitHub: https://github.com/ZenJB/TXZone/ REQUISITOS - Apache - MySQL - Msmtp - V5.5.13 PHP - Phpmyadmin - 2 Contas no [Suspicious link removed]o configurar o site? 1> Configure o Apache, MySQL, msmtp e o PHP 2> Crie 2 contas carteira no Blockchain 3> Ative o API em ambos as carteiras do BlockChain 4> Crie uma base de dados no MySQL chamada txzone atraves do phpmyadmin 5> Importar o arquivo database.xml para a base da dados txzone 6> COnfigure o ficheiro db.php em /scripts 7> Autorize o site a acessar o API de suas carteiras Como resetar as tarefas concluidas pelos usuários (deve ser feito diariamente e a uma hora fixa para permitir que os usuário façam as suas tarefas no dia seguinte): 1> Em phpmyadmin vá a txzone -> tasks e apague os dados Como activar os levantamentos de Bitcoin: 1> Em phpmyadmin abra a base de dados txzone -> webcontrol e defina o valor de pagamento 0-1 Se faltar alguma coisa, por favor responda a este tópico Se você usar este código-fonte por favor atribua-me os devidos créditos [/ b] Se você quiser me comprar um café, faça um donativo :) Endereço Bitcoin: 1EWhnNyoLpMHvKNETyRCn95tDaJmsPjuSX Disclaimer: [/ b] I am not responsible if you or someone loses Bitcoins, or if you get hacked dued to the lack of security or dued to another thing that may happen. This is a project in development. So, you will experience bugs, lack of feactures, and many other things... USE IT AT YOUR OWN RISK. tire os espaços entre a "/" e o "b" nos negritos, ficou todo deformado o post. Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: ZenJB on January 11, 2016, 09:46:14 PM Obrigado já tirei o espaços
Deve ter sido ao traduzir que ficou com os espaços :p Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: Nixtren on January 11, 2016, 10:34:04 PM Parabéns pela iniciativa :)
Geralmente quando vejo um novo projeto open-source gosto sempre de ir espreitar o código em busca de falhas de segurança. Fiz uma análise preliminar e aqui está uma vulnerabilidade:
Qualquer dúvida é só perguntar ;) P.S: E já agora, quem me quiser contratar está à vontade ;D Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: ZenJB on January 11, 2016, 10:41:40 PM Muito obrigado por detectar essa vulnerabilidade
Vou já reparar essa vulnerabilidade agora :) Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: Paredao on January 12, 2016, 03:31:44 PM Olá Mundo, Eu estou desenvolvendo um site PTC feito em PHP. No inicio ia fazer host do site mas o meu pc deu peça Então, tornei o site OpenSource para que qualquer um que queira começar um site deste tipo possa ter um grande impulso. Fiz upload de todos os arquivos no GitHub. Link do GitHub: http://zenjb.github.io/TXZone/ REQUISITOS - Apache - MySQL - Msmtp - V5.5.13 PHP - Phpmyadmin - 2 Contas no [Suspicious link removed]o configurar o site? 1> Configure o Apache, MySQL, msmtp e o PHP 2> Crie 2 contas carteira no Blockchain 3> Ative o API em ambos as carteiras do BlockChain 4> Crie uma base de dados no MySQL chamada txzone atraves do phpmyadmin 5> Importar o arquivo database.xml para a base da dados txzone 6> COnfigure o ficheiro db.php em /scripts 7> Autorize o site a acessar o API de suas carteiras Como resetar as tarefas concluidas pelos usuários (deve ser feito diariamente e a uma hora fixa para permitir que os usuário façam as suas tarefas no dia seguinte): 1> Em phpmyadmin vá a txzone -> tasks e apague os dados Como activar os levantamentos de Bitcoin: 1> Em phpmyadmin abra a base de dados txzone -> webcontrol e defina o valor de pagamento 0-1 Se faltar alguma coisa, por favor responda a este tópico Se você usar este código-fonte por favor atribua-me os devidos créditos Se você quiser me comprar um café, faça um donativo :) Endereço Bitcoin: 1EWhnNyoLpMHvKNETyRCn95tDaJmsPjuSX Disclaimer: I am not responsible if you or someone loses Bitcoins, or if you get hacked dued to the lack of security or dued to another thing that may happen. This is a project in development. So, you will experience bugs, lack of feactures, and many other things... USE IT AT YOUR OWN RISK. Legal o seu projeto. Pena que as fees dos Bitcoins arrebentam com qualquer projeto que envolva micro-pagamentos. É uma pena. Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: ZenJB on January 18, 2016, 06:45:12 PM Update 1:
-> Implementado Anti SQL-Injection -> Paginas Login e Register agora têm Protecção Anti SQL-Injection -> Palavra passe encriptada três vezes usando MD5 Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: dive on January 18, 2016, 07:27:17 PM Update 1: -> Palavra passe encriptada três vezes usando MD5 A cada novo hash MD5 você está aumentando a probabilidade de collision, reduzindo a segurança da senha. E MD5 não é um bom mecanismo de encriptar senhas pela facilidade de se fazer brute force. Use bcrypt. Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: ZenJB on January 18, 2016, 09:00:51 PM Update 1: -> Palavra passe encriptada três vezes usando MD5 A cada novo hash MD5 você está aumentando a probabilidade de collision, reduzindo a segurança da senha. E MD5 não é um bom mecanismo de encriptar senhas pela facilidade de se fazer brute force. Use bcrypt. MD5 não é um mecanismo de encryptação mas sim um mecanismo para gerar hashes tal como o bcrypt é :P Surgiu agora uma duvida ao ver o seu post. Se eu usar o bcrypt em cima do MD5 será que aumenta a segurança? Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: girino on January 18, 2016, 09:30:26 PM Update 1: -> Palavra passe encriptada três vezes usando MD5 A cada novo hash MD5 você está aumentando a probabilidade de collision, reduzindo a segurança da senha. E MD5 não é um bom mecanismo de encriptar senhas pela facilidade de se fazer brute force. Use bcrypt. MD5 não é um mecanismo de encryptação mas sim um mecanismo para gerar hashes tal como o bcrypt é :P Surgiu agora uma duvida ao ver o seu post. Se eu usar o bcrypt em cima do MD5 será que aumenta a segurança? Náo, a segurança de uma sequencia de hashes é igual a segurança da m=primeira hash (no caso, o md5). Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: girino on January 18, 2016, 09:35:28 PM (...) MD5 não é um mecanismo de encryptação mas sim um mecanismo para gerar hashes tal como o bcrypt é :P Surgiu agora uma duvida ao ver o seu post. Se eu usar o bcrypt em cima do MD5 será que aumenta a segurança? Náo, a segurança de uma sequencia de hashes é igual a segurança da m=primeira hash (no caso, o md5). Entrando em mais detalhes pra quem for curioso. A segurança de uma hash está em garantir que é dificil encontrar duas senhas P e P' tal que: HASH(P) = HASH(P'). Se eu encadeio duas hashes g() e h() da seguinte forma: HASH(P) = g(h(P)) Então Se existe P' tal que h(P) = h(P') Temos que: HASH(P) = g(h(P)) = g(h(P')) = HASH(P'). Ou seja, se a segurança de h() for comprometida, a segurança de toda a sequencia está comprometida. Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: dive on January 18, 2016, 10:22:52 PM Update 1: -> Palavra passe encriptada três vezes usando MD5 A cada novo hash MD5 você está aumentando a probabilidade de collision, reduzindo a segurança da senha. E MD5 não é um bom mecanismo de encriptar senhas pela facilidade de se fazer brute force. Use bcrypt. MD5 não é um mecanismo de encryptação mas sim um mecanismo para gerar hashes tal como o bcrypt é :P Surgiu agora uma duvida ao ver o seu post. Se eu usar o bcrypt em cima do MD5 será que aumenta a segurança? Náo, a segurança de uma sequencia de hashes é igual a segurança da m=primeira hash (no caso, o md5). Fui pesquisar mais e você tá certo girino. Não diminui, mas também não aumenta a segurança. Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: girino on January 18, 2016, 10:30:22 PM Update 1: -> Palavra passe encriptada três vezes usando MD5 A cada novo hash MD5 você está aumentando a probabilidade de collision, reduzindo a segurança da senha. E MD5 não é um bom mecanismo de encriptar senhas pela facilidade de se fazer brute force. Use bcrypt. MD5 não é um mecanismo de encryptação mas sim um mecanismo para gerar hashes tal como o bcrypt é :P Surgiu agora uma duvida ao ver o seu post. Se eu usar o bcrypt em cima do MD5 será que aumenta a segurança? Náo, a segurança de uma sequencia de hashes é igual a segurança da m=primeira hash (no caso, o md5). Fui pesquisar mais e você tá certo girino. Não diminui, mas também não aumenta a segurança. Se quiser aumentar a segurança o que pode fazer é concatenar a senha novamente na hash antes de fazer o segundo passo: HASH(P) = g(P || h(P)) (onde || é o operador de concatenação de strings). Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: filipwx on January 19, 2016, 04:16:24 AM eu já iria passar um scan de vul no site mais o amigo ja se adiantou a mim rsrsrsrs
Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: ZenJB on January 19, 2016, 04:53:08 PM Update 1: -> Palavra passe encriptada três vezes usando MD5 A cada novo hash MD5 você está aumentando a probabilidade de collision, reduzindo a segurança da senha. E MD5 não é um bom mecanismo de encriptar senhas pela facilidade de se fazer brute force. Use bcrypt. MD5 não é um mecanismo de encryptação mas sim um mecanismo para gerar hashes tal como o bcrypt é :P Surgiu agora uma duvida ao ver o seu post. Se eu usar o bcrypt em cima do MD5 será que aumenta a segurança? Náo, a segurança de uma sequencia de hashes é igual a segurança da m=primeira hash (no caso, o md5). Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: girino on January 19, 2016, 05:37:46 PM Update 1: -> Palavra passe encriptada três vezes usando MD5 A cada novo hash MD5 você está aumentando a probabilidade de collision, reduzindo a segurança da senha. E MD5 não é um bom mecanismo de encriptar senhas pela facilidade de se fazer brute force. Use bcrypt. MD5 não é um mecanismo de encryptação mas sim um mecanismo para gerar hashes tal como o bcrypt é :P Surgiu agora uma duvida ao ver o seu post. Se eu usar o bcrypt em cima do MD5 será que aumenta a segurança? Náo, a segurança de uma sequencia de hashes é igual a segurança da m=primeira hash (no caso, o md5). Não, ele só precisa fazer bruteforce no md5, o bcrypt decorre naturalmente. Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: ZenJB on January 19, 2016, 10:54:03 PM Update 1: -> Palavra passe encriptada três vezes usando MD5 A cada novo hash MD5 você está aumentando a probabilidade de collision, reduzindo a segurança da senha. E MD5 não é um bom mecanismo de encriptar senhas pela facilidade de se fazer brute force. Use bcrypt. MD5 não é um mecanismo de encryptação mas sim um mecanismo para gerar hashes tal como o bcrypt é :P Surgiu agora uma duvida ao ver o seu post. Se eu usar o bcrypt em cima do MD5 será que aumenta a segurança? Náo, a segurança de uma sequencia de hashes é igual a segurança da m=primeira hash (no caso, o md5). Não, ele só precisa fazer bruteforce no md5, o bcrypt decorre naturalmente. Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: girino on January 20, 2016, 12:05:55 AM Update 1: -> Palavra passe encriptada três vezes usando MD5 A cada novo hash MD5 você está aumentando a probabilidade de collision, reduzindo a segurança da senha. E MD5 não é um bom mecanismo de encriptar senhas pela facilidade de se fazer brute force. Use bcrypt. MD5 não é um mecanismo de encryptação mas sim um mecanismo para gerar hashes tal como o bcrypt é :P Surgiu agora uma duvida ao ver o seu post. Se eu usar o bcrypt em cima do MD5 será que aumenta a segurança? Náo, a segurança de uma sequencia de hashes é igual a segurança da m=primeira hash (no caso, o md5). Não, ele só precisa fazer bruteforce no md5, o bcrypt decorre naturalmente. fazendo o bruteforce. Não entendi a pergunta. Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: ZenJB on January 20, 2016, 10:42:55 AM Update 1: -> Palavra passe encriptada três vezes usando MD5 A cada novo hash MD5 você está aumentando a probabilidade de collision, reduzindo a segurança da senha. E MD5 não é um bom mecanismo de encriptar senhas pela facilidade de se fazer brute force. Use bcrypt. MD5 não é um mecanismo de encryptação mas sim um mecanismo para gerar hashes tal como o bcrypt é :P Surgiu agora uma duvida ao ver o seu post. Se eu usar o bcrypt em cima do MD5 será que aumenta a segurança? Náo, a segurança de uma sequencia de hashes é igual a segurança da m=primeira hash (no caso, o md5). Não, ele só precisa fazer bruteforce no md5, o bcrypt decorre naturalmente. fazendo o bruteforce. Não entendi a pergunta. 1) Pega na palavra passe e junta a um string e faz o hash disso 2) Pega no hash obtido anteriormente como se fosse uma string e junta a outra string diferente e faz o hash em md5 disso 3) Pega no hash obtido anteriormente como se fosse uma string e junta a outra string diferente e faz o hash em bcrypt disso 4) Pega no hash obtido anteriormente e salva na base de dados Imaginemos que um utilizador ganha acesso a base de dados e obtem o hash obtido no passo 3 A minha pergunta era: Como é que ele sabe o hash obtido no passo 2? Não tem de passar pelo hash obtido no passo 3 primeiro? Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: girino on January 20, 2016, 12:22:46 PM (...) A palavra passe é processada da seguinte forma: 1) Pega na palavra passe e junta a um string e faz o hash disso 2) Pega no hash obtido anteriormente como se fosse uma string e junta a outra string diferente e faz o hash em md5 disso 3) Pega no hash obtido anteriormente como se fosse uma string e junta a outra string diferente e faz o hash em bcrypt disso 4) Pega no hash obtido anteriormente e salva na base de dados Imaginemos que um utilizador ganha acesso a base de dados e obtem o hash obtido no passo 3 A minha pergunta era: Como é que ele sabe o hash obtido no passo 2? Não tem de passar pelo hash obtido no passo 3 primeiro? Nesse caso você está usando a forma que eu dei como exemplo de ser mais segura. Você está acrescentando informação a cada passo: (...) Se quiser aumentar a segurança o que pode fazer é concatenar a senha novamente na hash antes de fazer o segundo passo: HASH(P) = g(P || h(P)) (onde || é o operador de concatenação de strings). Note que isso só funciona se essa string diferente for desconhecida do atacante. Se a string for conhecida (mesmo que variável), um atacante que quebrar o md5 não precisa de brute force. Só precisa calcular bcrypt(string || md5_quebrado). Se você está dizendo que o atacante demoraria mais tempo para fazer um ataque de força bruta, lembre que fazer um ataque de força bruta sobre MD5 gastaria mais tempo que a idade do universo, então dificultar ataques de força bruta é perda de tempo. Estamos falando de caso a segurança do md5 seja quebrada. Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: thms on January 23, 2016, 05:43:01 AM Em vez da função md5 é melhor usar a função password_hash (http://php.net/manual/en/function.password-hash.php) que é mais atual, melhor do que aninhar funções MD5 (vc pode inclusive configurar o "custo" nas opções da função).
Também hoje em dia é muito mais recomendado o uso da classe PDO que já elimina boa parte das chances de SQL injection: http://php.net/manual/en/intro.pdo.php Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: filipwx on January 26, 2016, 04:21:58 AM mais tem programas que quebras as senhas mole, testando automaticamente em uns 28 sites, entre eles uns sites russos bem legais :3
Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: ZenJB on January 26, 2016, 02:07:54 PM Update 2:
-> Sistema Anti SQL-Injection implementado em todos os scripts -> Painel administrativo adicionado (Ainda incompleto) Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: thms on January 27, 2016, 12:16:29 AM Esse seu sistema anti injection se baseia na função sql_regcase() que é considerada obsoleta (deprecated) a partir do PHP 5.3.0 e foi removida do PHP 7. Ou seja, o script já não funciona no PHP 7.
Aquele arquivo json.php também não é necessário, basta usar as funções nativas json_encode()/json_decode(). Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: Nixtren on January 27, 2016, 01:47:47 PM Esse seu sistema anti injection se baseia na função sql_regcase() que é considerada obsoleta (deprecated) a partir do PHP 5.3.0 e foi removida do PHP 7. Ou seja, o script já não funciona no PHP 7. Aquele arquivo json.php também não é necessário, basta usar as funções nativas json_encode()/json_decode(). Coitado do ZenJB ;D A melhor solução é mesmo migrar para PDO ou MySQLi. Já agora, se alguém estiver interessado, eu há alguns meses criei esta classe PHP para interagir com base de dados MySQL: https://github.com/Nixtren/MySimplifiedSQL Recentemente descobri outro projeto que tem o mesmo objetivo que a classe que criei, mas pelos vistos é mais completa: http://medoo.in/ Depois há sempre a outra alternativa, que é usar PDO/MySQLi há moda tradicional, escrevendo as querys manualmente :) Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: ZenJB on February 12, 2016, 10:36:10 PM Esse seu sistema anti injection se baseia na função sql_regcase() que é considerada obsoleta (deprecated) a partir do PHP 5.3.0 e foi removida do PHP 7. Ou seja, o script já não funciona no PHP 7. Aquele arquivo json.php também não é necessário, basta usar as funções nativas json_encode()/json_decode(). Coitado do ZenJB ;D A melhor solução é mesmo migrar para PDO ou MySQLi. Já agora, se alguém estiver interessado, eu há alguns meses criei esta classe PHP para interagir com base de dados MySQL: https://github.com/Nixtren/MySimplifiedSQL Recentemente descobri outro projeto que tem o mesmo objetivo que a classe que criei, mas pelos vistos é mais completa: http://medoo.in/ Depois há sempre a outra alternativa, que é usar PDO/MySQLi há moda tradicional, escrevendo as querys manualmente :) Title: Re: Codigo Fonte em PHP de um projecto de um site de PTC Post by: ZenJB on February 18, 2016, 07:19:30 PM Update 3:
-> Adicionado opção para adicionar ou remover Administradores |