29 Feb
Sem dúvida alguma, a maior parte da publicidade online hoje é feita usando-se o AdSense da Google. Isso não é nenhum problema, afinal o AdSense é uma das ferramentas de anúncios que tem o melhor retorno financeiro para quem a utiliza. Mas e a segurança?
Imagine que você é um blogueiro profissional que tem como principal fonte de renda o AdSense. Da noite para o dia você vê sua receita desabando. O que você faz? Investe pesado em SEO e geração de conteúdo novo. Sua receita parece reagir mas volta a cair vertiginosamente. Você consulta todas as suas ferramentas de monitoração do seu site e nota que o número de visitas não diminuiu, apenas parece que ninguém clica mais em seus anúncios.
Já desesperado e vendo a falência correr em sua direção, você nota que um leitor do seu blog comentou praticamente todos os seus posts na última semana. Os comentários até são relevantes, mas você os apaga e vê que o blog volta a dar retorno financeiro.
Qual a relação daqueles comentários com sua receita? Toda.
Provavelmente todo mundo já ouviu falar de injeção de Javascript em uma página, mas vou explicar rapidamente o que é:
Um usuário mal intencionado, após tentar de diversas formas, descobre um jeito de incluir código Javascript na sua página (Em muitos sistemas isso significa apenas abrir e fechar a tag <script> em um formulário e depois submeter) e usa isso para mudar o comportamento do site.
Javascript é uma linguagem absurdamente poderosa e flexivel (vejam JQuery e Prototype, por exemplo). Além desse poder todo, o navegador constrói uma estrutura com todos os elementos da página que pode ser manipulada livremente por Javascript.
Juntando tudo isso em um bolo só, temos um ataque formidável e de difícil detecção. Como funcionaria esse ataque (aqui pensando apenas num blog, mas a idéia é extensível para muitos outros lugares)? Simples:
E acreditem, é realmente muito fácil fazer um script desses. Mas por que isso funciona?
Como os usuários do AdSense já devem ter notado, você não precisa cadastrar todos os sites onde sua id vai aparecer. Isso significa que a Google não tem como saber qual id deve vir de qual site. Um exemplo disso (mas esse é legal) é um desses plugins para inserir AdSense no WordPress. Em um checkbox você pode destinar para o autor do plugin 5% dos cliques em anúncio que você tiver. Ele faz isso colocando a id dele em 5% dos anúncios.
Mas a Google deveria encontrar um jeito de bloquear isso? Creio que não. Isso é uma característica do AdSense que o deixa bem flexível.
O verdadeiro problema é a injeção de script. Esse é um pesadelo do mundo atual. Sempre que você recebe os dados de uma fonte insegura (no caso qualquer conteúdo gerado por usuários), você deve limpá-lo e garantir que não exista nada que possa comprometer o seu sistema.
Mas isso raramente é feito de forma efetiva (quando é feito…), o que resulta em sites expostos. Já passou muito da hora dos programadores (em especial os que desenvolvem para web) se preocuparem em evitar o bom e velho “‘;DROP TABLE Funcionario;” que alguém colocou em um formulário qualquer por diversão.
Nota: Não me lembro de ter visto em lugar algum alguém mencionar um ataque como esse que eu descrevi acima, mas isso não significa que ninguém já esteja usando idéias semelhantes a essa. Segurança é um assunto importante que deve ser mais discutido.
Posts Relacionados:
Acompanhe-nos por
RSS, por Email ou via Twitter.
Veja como ter um desconto no Dreamhost: um excelente servidor web.
27 Feb

Para os iniciantes os comandos de shell do linux podem ser um tanto quanto confusos. Isso porque muitos não têm nome intuitivo (como o cat - gato em inglês - que mostra um arquivo no terminal) e a quantidade de comandos e parâmetros a decorar para fazer as coisas mais básicas no terminal é muito grande. Apesar de podermos fazer muitas coisas, principalmente por causa dos pipes, muito programas são desconhecidos e no fim das contas acabamos reinventado a roda quando não sabemos um deles. Por exemplo, apenas recentemente aprendi a usar o find e o wc que encontra arquivos e conta palavras/linhas respectivamente. Sugerimos então uma dica para quem gostaria de aprender alguns comandos de terminal já que, ao meu ver, é uma grande perda usar um sistema Linux e não saber os comandos básicos, já que o terminal pode agilizar muito o seu trabalho.
Posts Relacionados:
Acompanhe-nos por
RSS, por Email ou via Twitter.
Veja como ter um desconto no Dreamhost: um excelente servidor web.
25 Feb
Semana passada eu comecei a estudar para a certificação de programador Java da Sun (SCJP). Como estou vendo algumas coisas bem diferentes do java-arroz-com-feijão que todo mundo conhece, estarei postando sobre isso nas próximas semanas (e assim eu não serei o único ficando com os cabelos brancos).
Algumas coisas do que vou falar na verdade nem caem na prova de certificação, mas são bem interessantes. Vamos lá então.
class A {
public void x(){
//Uma implementação qualquer
}
}
abstract class B extends A {
@Override
abstract public void x();
}
class C extends B {
@Override
public void x(){
//Outra implementação qualquer
}
}
Olhem que divertido. A classe A declara e implementa x(). A classe B sobrescreve o método x() de A com um método abstrato. A classe C, que não é abstrata então é obrigada a implementar o método x().
É interessante o java permitir que você sobrescreva um método com um método que nem implementação tem ainda.
Você ainda poderia modificar um pouco o código e fazer com que o método da classe C fosse final que tudo ainda continuaria compilando. Mágico, não?
Posts Relacionados:
Acompanhe-nos por
RSS, por Email ou via Twitter.
Veja como ter um desconto no Dreamhost: um excelente servidor web.
22 Feb
Recentemente, assisti o documentário “Uma Verdade Inconveniente”, do Al Gore (uma vez candidato à presidência dos EUA). Isso me inspirou a escrever esse artigo, comentando sobre algumas coisas que nós, computeiros computólogos, podemos fazer pelo nosso meio ambiente.
Um dos maiores problemas com computadores é que eles gastam muita energia elétrica. Para se ter uma idéia, um desktop ligado pode consumir até 600 Wh no pior caso, quando o computador está com carga total (por exemplo, durante a execução de um jogo) e um monitor grande e/ou antigo está em uso. Os maiores responsáveis pelo gasto de energia no computador são, sem dúvida, o monitor e o processador, seguidos pela GPU.
Junte a isso as luzes do ambiente em que você trabalha e os periféricos ligados mas utilizados com pouca freqüência (impressoras, principalmente), e você terá um consumo que pode chegar aos 800 Wh.
Para diminuir o consumo, eis alguns conselhos:
Fora o consumo de energia, todos nós podemos tomar medidas para diminuir nossa agressão ao meio ambiente. Veja alguns links sobre o assunto:
Posts Relacionados:
Acompanhe-nos por
RSS, por Email ou via Twitter.
Veja como ter um desconto no Dreamhost: um excelente servidor web.