Tag Archives: web

Conteúdos – quando é que basta?

Published by:

Decidiu criar um novo blog, escolheu o tema e começou a escrever os primeiros posts. Começou com o tradicional (e imprescindível) acerca de…, e depois continuou com alguns artigos com informações actuais relacionadas com o seu tema, e alguns posts básicos que todos precisam saber…

Será que este conteúdo já basta para que o lançamento do seu novo blog seja um sucesso?

Antes de mais devemos considerar o que vai acontecer a este conteúdo inicial. A maioria dos leitores de blogs não se interessa muito pelo histórico de um blog que encontra, a menos que esteja mesmo interessado no tema, os artigos sejam excelentes e a navegação ininterruptível.

Na generalidade das vezes o que realmente acaba por acontecer é que o novo leitor lê o post que o trouxe ao blog, passa os olhos por dois ou três outros artigos , dos quais, se tivermos muita sorte, talvez leia um.

Se o blog, aparentemente, lhe agradar talvez o guarde nos bookmarks ou subscreva o feed.

O histórico, por isso, pouco ou nada oferece aos nossos novos utilizadores. A não ser bom aspecto. E escolhas.

Um novo utilizador, quando chega pela primeira vez a um site olha para ele no sentido de saber se ele é de interesse ou não. E uma das formas de saber isso é pela quantidade de informação que nele encontra e que acha relevante para si.

Quando o seu novo utilizador olha para um novo blog com poucos posts pode pensar “só tem três posts, deixa-o crescer“, e entretanto esquecer-se do seu blog e nunca mais voltar.

E esta reacção é ainda mais natural se o seu tema tiver muitos outros blogs na mesma área. Além de que muitos blogs não passam das primeiras semanas de existência.

Mas quando um novo utilizador encontra um blog que já tem algumas dezenas de posts, a probabilidade de encontrar algum que lhe interesse aumenta, assim como a capacidade de perceber qual a temática do seu blog, a forma como a apresenta e a qualidade daquilo que escreve. Permite ainda ao seu novo leitor perceber que dedica algum tempo ao blog e a probabilidade de os seus artigos lhe continuarem a interessar.

Começar a divulgar um blog que já tem conteúdos tem ainda vantagens do ponto de vista da indexação, pois os motores de busca ao encontrarem um site com alguma dimensão e perceberem que os seus conteúdos são originais vão indexá-lo mais frequêntemente para perceber com que regularidade o actualiza.

Começar a divulgar o seu blog quando já tem conteúdos é também util no sentido em que torna mais fácil a outros bloggers perceber o foco do seu blog e a qualidade dos conteúdos por si criados, e se estes tiverem mérito tornará mais fácil conseguir novos links naturais para o seu novo site. Pode também ser útil para conseguir links (pagos) de outros sites relevantes, pois cada vez mais será difícil conseguir webmasters a criar links para sites que não tenham conteúdos de interesse, devido às sucessivas actualizações dos diversos motores de pesquisa, especialmente do Google.

Os seus conteúdos serão também a semente que espalhará aos motores de pesquisa, e da qual mais tarde colherá novos utilizadores. Quanto mais conteúdos de qualidade o seu blog tiver mais utilizadores irá receber. Pode, claro, esperar para mais tarde para aumentar o seu arquivo. Mas se quando está a começar não tem tempo para dedicar à criação de conteúdos, quando é que terá?


Leitores Fieis – para que servem?

Published by:

Ao fim de pouco tempo qualquer blogger que tenha publicidade nos seus blogs se apercebe que os seus leitores habituais pouco ou nada clicam nesses anúncios. Muitos se perguntam então se devem tentar manter os leitores habituais, ou se devem simplesmente criar conteúdos para os motores de pesquisa.

Muitos chegam rapidamente a uma conclusão, enquanto outros procuram saber quais as vantagens e desvantagens de cada uma das práticas.

Deve criar conteúdos para os motores e pesquisa ou para os seus leitores fieis?

Bem, isso depende do que pretende fazer com o site.

Se pretende criar um site, divulgá-lo intensivamente, rentabilizá-lo e partir para outro site, tudo isto num intervalo de tempo reduzido, então nem pense duas vezes. O que pretende é um site para os motores de pesquisa.

Mas os motores de pesquisa vão, mais cedo ou mais tarde, para onde os utilizadores querem ir.

As técnicas agressivas de optimização que funcionam hoje, amanhã deixam de funcionar, e os conteúdos que hoje vendem, amanhã perderam todo o interesse.

Mas os seus leitores fieis continuarão a ser os seus leitores fieis enquanto continuar a escrever sobre os temas que lhes interessam, e continuar a escrever novos conteúdos, actualizados e adequados.

Aos poucos os seus leitores vão acabar por o conhecer, nalguns casos melhor do que as pessoas com quem trabalhar e com quem convive diariamente.

São esses leitores que vão dar a conhecer o seu site, criando links permanentes nos próprios sites e recomendando-o aos amigos e leitores.

Estes links são o que irá indicar aos motores de pesquisa que o seu site é importante.

Mas, nesse caso, pode começar por criar um site que os seus leitores gostem, e para os quais criem links, e depois criar uma montanha de lixo que lhe traga dinheiro, aproveitando assim a notoriedade que criou com os posts iniciais?

Claro. Nada o impede de fazer isso.

Mas, no momento em que os conteúdos do seu web site se tornarem maioritariamente lixo, deixará de ser o alvo de novos links dos sites dos seus leitores, e novos sites e blogs, entretanto criados, passam a receber esses links.

Os motores de pesquisa, além de considerarem a quantidade e a qualidade dos links que existem para um site, consideram também a sua actualidade, dando mais relevância a links novos, que a links antigos, que já só existem no histórico de artigos do site.

Assim, em pouco tempo começará a perder parte do seu pagerank e das suas, arduamente conquistadas, posições nos motores de pesquisa.

Com isto talvez tenha conseguido tornar o seu site mais lucrativo durante algum tempo mas, bem mais depressa do que desejaria, os motores de pesquisa vão acabar por o trocar por outros sites mais recentes, e em relação aos quais estava bem posicionado para conquistar ainda melhores posições.

E depois dificilmente reconquistará os leitores fieis entretanto perdidos.

E, claro, se o que pretendia era um site para queimar rapidamente, comprar alguns links não lhe ficaria mais barato do que perder longas horas a escrever artigos dignos de links?


PPW – Parâmetros e Dados

Published by:

Introdução

POSTs e GETs, o que são

Na Web, quando uma página tem um formulário, os valores introduzidos nesses formulários podem ser enviados para o servidor de duas formas distintas.

A primeira é acrescentando no nomes dos campos e os respectivos valores ao URL. Este método chama-se GET, e tem várias vantagens e desvantagens.

Por um lado os GETs podem ser facilmente guardados em caches, sendo assim servidos mais rapidamente nas vezes seguintes que forem pedidos. Esta vantagem é também uma desvantagem, uma vez que isso significa que da próxima vez que o mesmo pedido for efectuado, este pode nunca chegar ao servidor, pois pode ser servidor por uma qualquer proxy que se encontre pelo caminho, a começar pelo proxy transparente que a maioria dos ISPs (telepac, netcabo, etc) têm.

Por outro lado, este método pode facilmente ser reconstruido e utilizado em links (o que acontece muitas vezes). É comum hoje vermos site com links do tipo index.php?id=12345. Estes links, na prática, estão apenas a tirar partido do sistema de GET pensado inicialmente para os formulários.

Os GETs, no entanto, não permitem tudo o que se pretende fazer actualmente com um formulário. O tamanho máximo dos URLs está limitado (o limite depende da implementação), e alguns tipos de dados, como os uploads de ficheiro, apenas podem ser feitos por POST.

Ao contrário dos GETs, nos POSTs os dados preenchidos nos formulários são enviados no corpo de pedido HTTP, pelo que não existem limites para a quantidade de dados enviados.

Ao contrário dos GETs, os POSTs nunca sao guardados em caches ou proxies, pois os proxies (normalmente) lêm apenas os headers dos pedidos HTTP, e por essa razão não conseguem destinguir dois pedidos feitos por POST. As definições do protocolo HTTP também definem que os POSTs não devem ser guardados em cache.

Utilizações dos dados

Os dados que os utilizadores colocam nos formulários, ou que são passados nos URLs são utilizados de diversas formas, sendo as mais comuns a alteração ou selecção de dados em bases de dados (que podem ser ficheiros em disco), o envio de emails, entre outras (o limite é a imaginação).

O exemplo mais simples talvez seja mesmo o parâmetro no URL, o index.php?id=1234 de que falamos acima. Normalmente este parâmetro será utilizado para selecionar numa base de dados um artigo, e mostrá-lo ao utilizador.

Assumindo que o index.php não faz mais nada, é suficiente o código seguinte para completar a tarefa pretendida (sem design, apenas o titulo e corpo do artigo, de uma tabela com 4 campos:

  • id – o id do artigo
  • title – o seu titulo
  • body – o corpo do artigo
  • publico – 1 se o artigo é publico, 0 se não o for.


<?php
$id=$_REQUEST['id'];
$db=mysql_connect('localhost','username','password');
mysql_select_db('sitedb',$db);
$query="SELECT title,body from stories WHERE id=$id AND publico=1";
if ($sel=mysql_query($query)) {
if ($res=mysql_fetch_assoc($sel)) {
echo "<h1>{$res['title']}</h1>{$res['body']}";
}
}
?>

Apenas algumas linhas de código, e um erro relativamente comum, especialmente em locais onde o ficheiro assim criado é utilizado “apenas” em listagens criadas automaticamente.

Sim, neste caso abrimos a porta a que qualquer artigo seja visivel, mesmo que o campo publico seja 0. Como?

Passando, por exemplo, no campo id o valor id=123 OR 1=0, o que irá fazer com que a nossa query passe então a ser:


SELECT title,body from stories WHERE id=123 OR 1=0 AND publico=1

Como o AND é verificado antes do OR, qualquer artigo com o id=123 passa a ser uma resposta válida para a query, uma vez que o conjunto 1=0 AND publico=1 é sempre falso, e consequentemente descartável, desde que id=123 seja verdadeiro.

Em php podemos evitar esta situação utilizando a função mysql_real_escape_string e colocando sempre os valores entre plicas (‘), como se segue:


<?php
$id=mysql_real_escape_string($_REQUEST['id']);
$db=mysql_connect('localhost','username','password');
mysql_select_db('sitedb',$db);
$query="SELECT title,body from stories WHERE id='$id' AND publico=1";
if ($sel=mysql_query($query)) {
if ($res=mysql_fetch_assoc($sel)) {
echo "<h1>{$res['title']}</h1>{$res['body']}";
}
}
?>

Duas pequenas alterações, mas que fazem toda a diferença. Deve colocar os valores entre plicas mesmo que os valores esperados sejam numéricos, ou então deve verificar se os valores têm realmente o formato esperado.

Conclusão

Isto é importante não apenas nos valores recebidos no URL, mas em todos os valores que sejam recebidos do utilizador, seja em URLs, seja em POSTs de formulários.

São pequenas alterações no seu código, mas que podem tornar a sua aplicação muito mais segura.

As linguagens e motores de base de dados que conheço têm um equivalente ao aqui apresentado. Se não existir implementado na que utiliza vale a pena perder uma ou duas horas, descobrir quais os caracteres que é preciso escapar no sistema que utiliza e implementar uma função que o faça, e que poderá reutilizar sempre que pretender.

Programar para web e manter os dados seguros não são necessariamente incompativeis. Basta seguir algumas regras simples. A maioria dos truques são muito simples, e mais simples ainda de impedir.