Hacker instalou um Backdoor secreto em servidores do Facebook para capturar senhas

Você viu essa notícia? Hacker Installed a Secret Backdoor On Facebook Server to Steal Passwords Resumindo, um hacker descobriu um servidor do Facebook (files.fb.com) rodando uma versão desatualizada de um software de compartilhamento de arquivos e conseguiu, através disso, fazer upload de um PHP Web Shell. Ou seja, acesso shell ao servidor. No post original… Continue reading…

Módulo Python: requests

Esqueça urllib e httplib: Requests resolve do jeito certo. Você pode instalar via pip com: pip install requests Depois, veja como é fácil: >>> import requests >>> r=requests.get(‘http://visie.com.br’) >>> for k,v in r.headers.iteritems():print k,’=>’,v … content-length => 7669 content-encoding => gzip accept-ranges => bytes expires => Mon, 20 Jan 2014 13:18:30 GMT vary => Accept-Encoding,Cookie server… Continue reading…

Pare de usar FTP

Há mais de dez anos que meus processos de deploy, isto é, colocar um site ou sistema em produção, não usam FTP. Qualquer bom provedor, nacional ou internacional, oferece ferramentas muito mais eficientes para o deploy de sites e sistemas. E isso inclui desde pequenos sites em WordPress ou HTML estático até portais com milhares… Continue reading…

Papo de Maluco

Hoje estava brincando com Requests e tive essa ideia maluca: import requests import re def Ed(text): params=dict(server=’0.0.0.0:8085′,charset_post=’utf-8′, charset=’utf-8′,pure=1,js=0,tst=1,msg=text) return re.sub(‘<[^>]*>’,”,re.sub(r’\n+$’,”, requests.get(‘http://www.ed.conpet.gov.br/mod_perl/bot_gateway.cgi’, params=params).text)) def SeteZoom(text): params=dict(server=’127.0.0.1:8088′,pure=1,js=0,tst=1,msg=text) return re.sub(r’\n+$’,”, requests.get(‘http://bot.insite.com.br/cgi-bin/bot_gateway.cgi’, params=params).text) msg=’Oi!’ while True: print ‘SeteZoom: %s’ % msg msg=Ed(msg) print ‘Ed: %s’ % msg msg=SeteZoom(msg) Teste aí, o resultado às vezes é mais inteligente que muito… Continue reading…

Pequena dica de Python: as classes são dinâmicas

Veja: >>> class Class: … def um(self): … return 1 … >>> c=Class() >>> c.um() 1 >>> def dois(self): … return 2 … >>> Class.dois=dois >>> c.dois() 2 >>> Class.tres=lambda self:3 >>> c.tres() 3 >>> Class.um=lambda self:’Um modificado.’ >>> c.um() ‘Um modificado.’ As classes em Python são completamente dinâmicas. Você pode acrescentar métodos quando quiser… Continue reading…

Pequena dica de Python: string formatting com locals()

Há muitas situações em que uma função faz cálculos e operações para obter valores e, ao final, deve montar uma string com esses valores. Nesta situação, muita gente monta um dicionário com os valores e usa string formatting para gerar a string a ser retornada. Por exemplo: # -*- encoding: utf-8 -*- import string,random template=”’Sugestões… Continue reading…

HTML5: Desenvolvendo agora as aplicações web de amanhã

Boa parte das APIs do HTML5 já estão disponíveis hoje para a maioria dos navegadores e, com um pouco de conhecimento e uma pitada de javascript, é possível desenvolver hoje aplicações com geoposicionamento, funcionamento offline, conexão em tempo real com o servidor, gráficos vetoriais e todo um novo conjunto de recursos de interface. Por que… Continue reading…