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:
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.
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:
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 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).
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:
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?
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.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.
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
Config
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:
Etapa onde se cria conta com reCaptcha ativado nas configs.
Etapa onde se checa ACCOUNT, EMAIL, PASSWORD se todos estão de acordo com os filtros presentes.
Criar acc com opção reCaptcha desativada
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.
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.
È possivel fazer o login informando senha ou email usado para cadastrar.
Caso o usuário não tenha ativado conta pelo email que lhe foi enviado.
Alterar email somente premmys poderão, poderá ser desativado pelo config para usuários free também poderem alterar.
Usuário irá checar email que será enviado pelo sistema com um link de verificação para alteração da senha.
È 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?