• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

WebATS - Web Page

treta

pegael.gringo
Joined
Sep 13, 2008
Messages
17
Reaction score
0
Estou desde semana passada desenvolvendo um web page para servidores 8.6x.
Por enquanto eu só me dediquei mais na parte de login e criar conta. È uma área importante do site, e me foquei mais na segurança em geral usando várias funções para proteger contra ataques mais discutidos na web, bem, como não sou um DEUS creio que tenha falhas, mais desconheço que seja comuns, estou revisando o script de cima abaixo, e espero termina logo este site, estou com planos para liberar para galera de alguns foruns uma versão FREE e lançar uma versão com algumas funções a mais com painel de administração um pouco mais completo. E também criei uma função que ao vender o site para o usuário terá um arquivo que será encodado e nele se encontra todas as funções do site, neste arquivo também irá ter uma função de KEY que irá funcionar da seguinte maneira:

24mxq3p.jpg


OBS: Porcaria de imageshack está quebrando os links das imagens, com o tempo irei upar novamente.

O arquivo que estará encodado irá se conectar ao meu servidor e informar uma key, meu servidor irá pegar esta KEY e com outra função checar em meu banco de dados e retorna resposta por JSON. Caso a KEY que o usuário informo seja válida a função do meu servidor irá retorna TRUE, sendo assim o site irá funcionar normalmente.

A KEY
A KEY irá conter e informações: Email, time, active. O email sera cujo do usuário que compro o site, time sera o tempo pelo qual o usuário terá seu site online, sendo assim se ele compro uma licence key por 3 meses o site dele ira ficar online por 3 meses a parti da data da geração da KEY passando se os 3 meses o meu servidor irá retornar a resposta da checagem da KEY como FALSE e desativando a KEY do usuário no modo active = 0

O arquivo que irá conter a função da key é encodado em um algoritmo numero binário que só eu irei saber, sendo assim a possibilidade de alguém um dia decodar o arquivo seja de uns 5%. Este arquivo irá conter todas funções do site WebATS sendo assim se ele for deletado o site não funciona de qual quer maneira, ah e são muitas funções, descartando a possibilidade de algum programador fazer as próprias funções e assim o site funcionar sem o arquivo da key, é isso só se ele querer perder alguns meses da sua vida na frente de um computador.

O SITE
O site irá conter as funções básicas de qual quer web page (nicaw,gesior,modern acc e etc) Estas como: Criar conta, login, criar character, rank, players online e etc. O site irá conter alguns sistemas diferentes e até hoje não criados, alguns com suporte até in-game e of-game, e claro não divulgarei por questão de alguns espertos copiarem a idéia.
O template em si eu peguei um free sendo ele do StyleShout sendo free não terei sequer algum problema perante a direitos autorais.
Todos os códigos que estão presente no site até agora são 80% de minha autoria, alguns são por via de sources livres para editação.

O site contém de um sistema de token unico que se minha memória não me falte até hoje eu não vi em nenhum web page (nicaw,gesior,modern acc e etc).

Pra quê este sistema?
A ideia é então adicionar um Token único, aos links ou formulários que pretendo proteger, efectuando a validação no servidor antes de aceitar o pedido.
Desta forma é possível garantir ambas as acções só podem ser iniciadas por um utilizador autenticado e não por um script malicioso numa página forjada pois cada Token é único por cada utilizador.
O usuário ao efetuar o login o script gera uma conbinação de caracters e insere como token nas get do link. A mesma token o script insere em uma tabela no banco de dados com informações da sessão do usuário, exemplo como account_id, email, ip, time, active. A cada sistema visitado pelo usuário que o mesmo necessite de login o script irá verificar a token da get do link o cookie da maquina do usuário se anbos forem iguais o script prosegue com a verificação e o próximo passo e último é checar a token no banco de dados, ele verificar se a cookie token presente é a mesma que esta na tabela, se ela esta ativa, se o tempo dela já expiro e se as informações como account_id e email batem com a conta logada que é definida por outro script de checagem de login. Caso todos os passos da verificação estejam ok o pedido do usuário será aceito e efetuado. Exemplos: Criar player, alterar senha, alterar email e etc. Caso a cookie do usuário seja deletado ou a token do usuário seja expirada o script retorna um logout(); assim automaticamente obrigando o usuário efetuar o login novamente. O script também tem uma checagem, se o browser do usuário for fechada antes dele efetuar o logout assim deixando sua conta logada o script irá reconhecer efetuar o logout por ele, deletando token da máquina e desativando token no banco de dados.
Todas as tokens são salvas, eu irei fazer um sistema no final que será implementado no painel de administração, nele será possivel gerar logs de usuários. Exemplos: Se o usuário altero sua senha no banco de dados irá ficar a token dele a account_id ip e o que ele fez no caso altero senha. O sistema irá gerar a informação como por exemplo: O usuário x altero sua senha no dia x x x x. Este sistema sera bom para efetuar logs precisos de alterações dados de conta, e por si só detectar quando preciso autores de roubo de contas. Pois se o usuário roubo uma conta e logo nela no site para alterar senha a token dele é salva e o IP também o sistema irá fazer uma busca de IP iguais logados ultimamente naquela conta e assim citar a conta do individuo.

Mais detalhes sobre este sistema de token você encontra aqui:


Algumas funções

O site conta com funções que irão checar constantemente se a token do usuario não expiro e login esta ativado. Script com funções de scape string para evitar XSRF o famos sql_injection e outras importantes para rodar o painel de administração.

Variaveis
O site irá contar com uma enorme variaveis de variaveis assim facilitando a programação de códigos e implementação de outros programadores ao site.

Config
PHP:
<?php

//////////////////////////////////////// Configurações de Email //////////////////////////////////////////////////
            $SendPHP['mail_address'] = "";     // Email que Enviara                        //
            $SendPHP['smtp_host'] = "smtp.mail.yahoo.com.br";         // SMTP Host                                 //
            $SendPHP['smtp_user'] = "";         // SMTP Usuário,                              //
            $SendPHP['smtp_pass'] = "";                     // SMTP Senha                                 //
            $SendPHP['from_name'] = "ServerName";                     // Nome Que irá no Email em [ subject ]     //
            $SendPHP['site_url'] = "http://127.0.0.1/ats";          // Site do Servidor                         //
///////////////////////////////////////// Fim das Configurações de Email /////////////////////////////////////////

//////////////////////////////////////// Mysql Server ////////////////////////////////////////////////////////////
            define ("DB_HOST", "127.0.0.1");                         // Local Servidor Mysql                        //
            define ("DB_USER", "root");                             // Usuário Servidor Mysql                    //
            define ("DB_PASS","");                         // Senha Servidor Mysql                            //
            define ("DB_NAME","ats");                         // Database Servidor Mysql                        //
            $link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Couldn't make connection.");                 //
            $db = mysql_select_db(DB_NAME, $link) or die("Couldn't select database");                            //
///////////////////////////////////////// Fim das Configurações de Mysql Server //////////////////////////////////

///////////////////////////////////////// Configurações //////////////////////////////////////////////////////////
            $user_registration = 1;                                 //    Permitir Registro                        //
            $verify_email = 1;                                         //    Permitir Registro                        //
            $verify_code = 0;                                         //    Permitir Registro                        //            
            define("COOKIE_TIME_OUT", 10);                             // Define Cookie Time Days                    //
            define("TOKEN_TIME_OUT", 60*60*1);                         // 1 Hora                                    //
            define('SALT_LENGTH', 9);                                                                               //
            define('KEY_EMAIL', 9);                                                                               //
            define('KEY_TOKEN', 54444);                                                                           //
            $install = 0;                                            // Wizard Install                            //
            $web['layout'] = "padrao";                                 // Layouts                                     //
            $web['pass_type'] = "";                                 // Layouts                                     //
            $verify_email_change_password = 1;                         // Confirmar troca de password por email    //
///////////////////////////////////////// Fim das Configurações de Mysql Server //////////////////////////////////

///////////////////////////////////////// reCAPTCHA KEYS     //////////////////////////////////////////////////////
            $publickey = "6LeRr8ESAAAAAMEa6p_pasasM2pLWkMJNse5z2my6dlI";                                             //
            $privatekey = "6LeRr8ESAAAAAJpHofTXEF4t7RY1244g8pljIH0QRA2u";                                             //
///////////////////////////////////////// Fim das Configurações de Mysql Server //////////////////////////////////

///////////////////////////////////////// Outras Configurações    //////////////////////////////////////////////////
            $ip = "127.0.0.1";                                         // Server IP                                //
            $serverport = "7171";                                     //    Server Port                                //                                                                
            $maintence = "0";                                          //    Página em Manutenção 1 true ? 0    false    //
            $aviso = 'Página em Manutenção!';                                                                     //
            $moeda = "CoinName";                                     // Moeda Virtual                            //
            $team_name = 'NameofTeam';                              // Nome da Staff                            //
            $forum = '';                                                                                         //
            $title_world = 'NameServer';                             // Title Name                                //
            $world = 'NameWorld';                                     // World                                    //
            $GMT = "-3";                                                                                         //
            $csp['servpath'] = '';                                     // Pasta do Servidor                        //
            $servpath = $csp['servpath'];                                                                         //
            $cfg['house'] = '';                                                                                 //
            $charlenght = '18';                                     // Total de caracters nome novo player        //
            $NewsTable = "";                                         // Tabela de Novidade                        //
            $AccountId = "id";                                         // Row account ID                            //
            $AccountsTable = "accounts";                             // Table de accounts                        //
            $website = "http://localhost";                                                                         //
            $last_kills = '100';                                     // Paginação do Last Kills                    //
///////////////////////////////////////// Fim das Configurações //////////////////////////////////////////////////
?>
O config ainda esta incompleto com o tempo terá muitas opções.
Instalador

O site irá contar com um wizard assim facilitando a vida do dono, nele poderá ser possivel configurar tudo no site desativando ou ativando opções ao instalar, banco de dados, funções e ativar sistemas, será automatico praticamente toda instalação.


Algumas Imagens:

cadastrorecaptchon.png



Etapa onde se cria conta com reCaptcha ativado nas configs.

cadastromsgerro.png


Etapa onde se checa ACCOUNT, EMAIL, PASSWORD se todos estão de acordo com os filtros presentes.

cadastrorecaptchof.png



Criar acc com opção reCaptcha desativada


cadastrodoneemailon.png


Essa é ultima etapa no criar acc, caso a opção de enviar email esteja ativada nas configs o site irá efetuar a cadastro da conta e enviar um email para o usuário com um link de ativação e um código de ativação, para que seja possivel ativar a conta.

ativaraccemailon.png





cadastrodoneemailof.png



Caso a opção enviar email esteja desativado o site irá criar a conta do usuário e ativar ela para o uso do mesmo.

loginul.png



È possivel fazer o login informando senha ou email usado para cadastrar.

contanaoativada.png



Caso o usuário não tenha ativado conta pelo email que lhe foi enviado.

acchome.png




alterarinfoplayer.png




alterarinfoplayerok.png






editinfosacc.png




changeemailpremmyon.png



Alterar email somente premmys poderão, poderá ser desativado pelo config para usuários free também poderem alterar.

changeemail.png




changesenhaincorrect.png




changesenhaemail.png



Usuário irá checar email que será enviado pelo sistema com um link de verificação para alteração da senha.

ativarsenha.png




sessionexpirada.png




gettokenlink.png




È pouca coisa por um bom tempo programando, eu estou focando mais na segurança onde será o ponto forte, pois bem, não sei ainda uma previsão para lançar algo beta desta pagina e acho que vai demorar estou a cada dia mais ocupado com minha vida social mais estou tentando programar mais rapido possivel. O que acham ? gostaram?




 
ele n ta com problema, ele apenas só está permitindo quem tem conta registrada la poder visualizar as imagens :)
 
Sera liberado uma versão free com as funções básicas de um webpage e outras criadas por mim.
A diferença entre a free e a versão paga será o painel de administração que tera muito mais opções de configuração e o site terá sistemas próprios, sendo assim mais features que o free.

Eu irei analizar melhor essa questão quando lançar, se for bem recebido, ai quem sabe ?
 
HEHE, A ideia do cara eh boa, mas ja temos tudo que agente precisa tanto no gesior quanto no Advanced Acc do talaturen, Eu mesmo tive server rodando gesior com 100+ players bem configurado e nunca fui hacked , os atuais sites de acc q tem por ae sao bons, so tem que serem bem configurados , eu particularmente nunca pagaria pra ter um site com coisas amais do que ja existe atualmente, e na verdade nao eh o site que faz o ot e sim o MAPA....

fuii..
 
pra usar o gesior você tem que ficar garimpando correções pelo fórum e mesmo assim nunca terá a certeza que está seguro.

o advanced aac (isso existe?) não é do talaturen, nem o modern aac, que acredito que seja o que você quis mencionar.
 
ntmr em breve tou lançando Gesior ACC full protection todos scripts revidos e qualquer tipo de brechas concertadas e adicionado anti sql-injection.

99% de proteção!
 
ntmr em breve tou lançando Gesior ACC full protection todos scripts revidos e qualquer tipo de brechas concertadas e adicionado anti sql-injection.

99% de proteção!

e os outros 1% ;p

#topic

Quando vai lançar?
 
nwtr o 1% é 1% as chances são minimas ou acredito que não existam ;p.
Mais acredito que seja um grande avanço relacionados aos gesior existentes.
Pode confiar eu utilizo esse site nos meus server tenho varias tentativas de invasões e o site ainda não me decepicionou, tive problemas com o site assim quando baixei, invasões e etc... Trabalhei com alguns especialista da área de inject e progamadores de php até chega a uma boa peformace.
 
Natan Beckman
Sim seus projetos em cima do Gesior são bons pakas, lhe admiro pelo que faz!

RobsonDias
Legal, poderia por uma previa do que ja fez ^^!
Seria bom para todos.

Tópico
Como ja desejei boa sorte ao projeto, cabe então esperar a versão beta xD
 
Natan Beckman
Sim seus projetos em cima do Gesior são bons pakas, lhe admiro pelo que faz!

RobsonDias
Legal, poderia por uma previa do que ja fez ^^!
Seria bom para todos.

Tópico
Como ja desejei boa sorte ao projeto, cabe então esperar a versão beta xD
Por enquanto ainda não posso mostrar nenhum preview, mais em breve eu crio um tópico aqui :)
 
Back
Top