O dia em que quase virei webdesigner – Nostalgia com Dreamweaver 2

Quem se lembra do Dreamweaver 2? Eu me lembro bem. Foi em 1998 quando desenvolvi o primeiro (e único) site que não precisei digitar uma linha sequer de código HTML… Este site, fruto de uma bolsa de estudos – resultou na compra do meu primeiro software legalizado: uma licença de DW2 que, se não me engano, custava 400 reais (bons tempos de 1U$=1R$)!

Geoestatística Online
(entre outras maluquices que se aprende na Geologia)

Depois disso veio aprendi a programar em CFML (4.0 – cfset #var#=”lalala”) e comprei o CFStudio 4 e nunca mais tive que ficar fazendo letras e coisas escorregarem para cima e para baixo… resta saber se isso foi bom ou ruim! 😉

FLASHBACK (com fundo musical anos 70): HotDog Plus, Netscape 3.0 Gold, uol.web_design, IE 4 “de grátis”, Windows NT Option Pack, Netscape vs. IE, Modem de 33.600, “depois da meia noite só paga um impulso…”, ColdFusion Express, Altavista, STI (o primeiro provedor de horas ilimitadas)…


OT: miserable failure

Pausa para um off-topic interessante:

1) Entre em Google.com;
2) Digite “miserable failure”;
3) Clique em “Estou com sorte” ou “I’m feeling lucky”.

;o)

A propósito: a página de erro 404 do CF_GIGOLÔ sempre foi assim.

[via BBC]


Coral?

Sempre vi pessoas comentando sobre como desenvolver uma aplicação em ColdFusion e vendê-la como um pacote completo, incluindo o servidor, mas sem pagar uma nota preta por isso (preço de uma licença inteira de CFMX da Macromedia). Até hoje o BlueDragon era uma possível resposta para isso. Hoje vi que pode existir uma segunda, nova e bastante interessante alternativa!

Não deixe de conferir o Coral Web Builder.

[via daemonite]


ColdFusion administrator… De novo?

Tem gente que não acredita… E eu não canso de bater na mesma tecla. Alguns talvez ainda não tenham levado um susto dos bons para, quem sabe, acordar… Afinal de contas, uma leitura mínima para se proteger de coisa tão banal não falta.

Até o UOL, no auge de sua força, arrogância e prepotência resolveu fazê-lo, por que tanta gente ainda insiste em deixar o CF Administrator escancarado?

Apenas alguns exemplos:

http://funky.macbbs.com.br/cfide/administrator
http://www.webgeo.net/cfide/administrator/
http://www.porta80.com.br/cfide/administrator/
http://ns1.dwws.com.br/cfide/administrator/
http://linux.infoserra.com.br/cfide/administrator/
http://amidala.allnet.com.br/cfide/administrator
http://dns1.webcalifa.com.br/cfide/administrator/
http://www.intersoft.com.br/cfide/administrator/

Mamão com açúcar, papai-e-mamãe, bico, moleza… chamem do que quiser a verdade é que, durante todo o dia de ontem, um PC cacareco (Pentium 233 MMX – overclocked para impressionantes 266Mhz!!) conectado à minha mini rede que conta com uma saída para a Internet de 512Kbps (cable) e usado como cobaia para as minhas barbáries ficou “brincando” com três servidores/hosts acima citados enquanto eu trabalhava. Ao chegar em casa agora pouco nenhuma surpresa: o softwarezinho de brute-force que usei (encontrado em qualquer site “réquer”) foi capaz de quebrar a senha de dois dos CFAdms listados acima (2 em 3!)… Normalmente eu aviso os sys-admins do problema, mas nem sempre teremos pessoas com esta boa vontade (softwares de brute-force podem ser rodados com proxies anônimos – demora mais, mas uma hora acaba entrando) e os sites em CF do servidor inevitavelmente irão por água abaixo… se o resto não for junto já que muitos “administradores” tem a péssima mania de usar a mesma senha para tudo… a senha do ColdFusion Administrator é igual a do usuário “Administrador” ou “root” do SO. Basta experimentar entrar com o VNC ou, mais comum, o Remote Desktop da MS…

Prestem mais atenção!! O estigma de “inseguro” que o ColdFusion carrega (felizmente isso está mudando rapidamente) é muito em parte por falta de conhecimento nesta plataforma. No Brasil isso é ainda mais notável, dada a ausência de documentação e recursos em português. Espero que isso mude gradativamente, porém de forma rápida e correta (estamos cansados de plágios e “traduções”).

Com relação ao problema do CF Administrator (o mais básico dos básicos), algumas orientações básicas de como se proteger (e proteger os seus clientes caso você seja um ISP) podem ser encontradas aqui e aqui também.

Notem que mais preocupante (e impressionante) nessa história é que estamos falando apenas de hosts que oferecem hospedagem ColdFusion! Estes que deveriam ser mais preocupados com a segurança… (casa de ferreiro espeto de pau?). Existem inúmeros sites feitos em CF que estão abertos do mesmo jeito. Um bom exemplo pode ser visto aqui.

Se você tem um site hospedado em ColdFusion, exija o mínimo aceitável de segurança para suas aplicações e sites, você tem esse direito (nem que para isso você tenha que configurar o servidor do seu ISP à quatro-mãos – isso é mais comum do que você imagina).

Em breve a Locaweb irá oferecer hospedagem ColdFusion MX de forma segura e decente (inclusive com licenças de verdade, o que muitos não tem – não vale a pena mencionar quais). Se rolar (e tudo caminha para) será a primeira hospedagem compartilhada ColdFusion MX confiável e decente que conheço e recomendo no Brasil. Os detalhes eu postarei num futuro breve. Quem sabe assim poderemos contar com uma estrutura de host onde podemos colocar nossas aplicações (e de nossos clientes) com tranqüilidade.

Até lá cuide dos seus sites!


MX Developer’s Journal

O Doulgas da Synex me deu um toque, fui conferir e é realmente imperdível: está disponível para download a versão full do primeiro exemplar do MX Developer’s Journal. São 5Mb e 100 páginas de muita informação. Confira!


A “Fortaleza” da Macromedia

Neste final de semana fui comprar a edição de dezembro da revista WWW.com.br – revista que passei a ler depois dos meus 15 minutos de fama na edição passada – e tive a grata surpresa de encontrar uma entrevista com o barbudão Ben Forta, falando sobre ColdFusion e suas vantagens perante às tecnologias ASP e PHP.

benforta.jpg

A íntegra da reportagem você encontra nas bancas. Vale a pena, a revista é de qualidade e bastante atual, com destaque para hosting providers (uma extensa lista de hostings que oferecem ColdFusion e outras tecnologias) e reportagens variadas e interessantes. O CD que vêm na edição deste mês (que custa R$ 12,90) tem ótimos programas (a maioria freeware) e um longo e extenso tutorial de ActionScript em forma de vídeoaulas.

UPDATE: Ben Forta fez um rápido comentário sobre a entrevista (incluindo o screenshot da capa – para quem quiser comprar na banca) em seu blog.


CF_GIGOLÔ no jet set internacional

O Full As a Goog, aplicação mais antiga e mais conhecida de agregação de conteúdo feita em ColdFusion (base inclusive para o Macromedia MXNA que turbina o CFUG-SP Agreggator) acaba de abrir o seu agregador internacional. Saiba mais no blog do Jonas Galvez. O CF_GIGOLÔ já era indexado desde 2002, porém sem display dos posts, isso passa a rolar a partir de agora. Só senti falta do Blog do Frutig! Tenho certeza que será adicionado em breve.

UPDATE: o coitado do CFUG-SP Aggregator vai ficar mais vazio com certeza, porém vamos mantê-lo já que a manutenção é mínima (tudo é automático) e também ele é o único (por enquanto) que oferece um feed RSS em português, diferente do FullAsAGoog que só oferece feeds RSS para blogs em inglês, apesar de agregar conteúdo em outras línguas.


Você sabia? CreatTimeSpan()

Nunca tinha parado para pensar nisso, mas gostei da dica que encontrei semana passada no HOF. Eis que temos o óbvio: a função CreateTimeSpan() – ou em “português” CriarIntervaloDeTempo() – é usada para se criar valores de tempo (em número de dias – um dia será 1, 1/2 dia será 0,5 e assim por diante).

Em 90% dos casos ela é usada para setar timeouts e outras informações de tempo como por exemplo o que a sua aplicação se manterá ativa (na tag cfapplication) e também em outras propriedades de tempo tal como num cache de query, pelo atributo cachedwithin (o quê? você não cacheia suas queries?!!). Neste último, é comum vermos sets para dias exatos, como um dia, dois e até um mês inteiro (queries de informações que nunca mudam, por exemplo).

Eis que lhe pergunto: você já experimentou rodar isso aqui e ver o que dá?

CreateTimeSpan.GIF

O resultado vai ser um sonoro “1” (sem aspas) na tela do seu browser. O que isso significa (além de que a função retorna valores em dias)? Significa que se você quiser determinar o tempo de permanência de uma query no cache do servidor você pode usar cachedwithin=”1″ e pronto. Não precisa ficar se lembrando de que na função CreateTimeSpan() o primeiro atributo significa dias, o segundo horas e assim por diante… (eu não consigo decorar essas coisas). Com essa abordagem você também pode poupar alguns nanosegundos de processamento já que o CFServer não vai precisar processar a função. Best-pratice? Nunca, never, nie! Esta é apenas uma curiosidade e uma abordagem diferente para você usar em suas aplicações caso esteja de saco cheio de ficar digitando CreateTime…. em todo lugar onde você quiser valores de dias inteiros para especificar.

O porém fica por conta de valores menores que um dia (comuns em cfapplication). Já pensou uma aplicação que só pode ficar ativa por 15 minutos? O valor de #CreateTimeSpan(0,0,15,0)# é “0.0104166666667”. Decida você o que é mais fácil digitar e entender…


Enquanto isso…

Mais um da série “Enquanto isso…”. Desta vez dou uma dica: trata-se de uma organização mantida por um grande (grande mesmo) banco brasileiro. O site é público e aberto, além de ser bem bonito e interessante, falando inclusive sobre cybercultura. As pastas safadas estão presentes no próprio domínio do site, não foi preciso fazer nenhum tracert, ping ou qualquer outra baboseira para encontrá-las sob um IP ou outro hostname.

cfdocs_aberto.gif
A pasta CFDOCS contém inúmeros exemplos de aplicações, algumas delas podem ser usadas para fazer upload de arquivos em qualquer parte do servidor, por qualquer um!

cfide_aberto.gif
Um diretório CFIDE/administrator pode ser facilmente quebrado usando um aplicativo “réquer” de brute-force, por exemplo. Além disso, no CF 4.0 temos um bug de buffer-overflow no administrator que, ao inserirmos uma string gigante (uma senha tem em média 8 caracteres, estamos falando de milhares, um doc do word de 30 páginas…) no campo onde se espera a senha de acesso o CFServer.exe cai e nunca mais volta (até alguém apertar o botãozinho de reboot)…

Os respectivos administradores de sistema do dito cujo já foram avisados e contactados sobre o assunto. Depois dizem que o CFServer é que é inseguro…

Leia algumas security best pratices que fiz sobre estes dois assuntos aqui.


Quando eu devo usar CFLOCK?

Esta semana andou rolando na lista CF-Brasil algumas perguntas sobre o uso da tag CFLOCK em CFMX. Não tem segredo ou complicação. Procure nos arquivos da lista ou então leia esta FAQ, feita por Ben Forta e disponível no CFFAQ.com:

A função da tag CFLOCK é a de controlar o acesso simultâneo de um pedaço de código ou mesmo de um escopo inteiro de variável. Versões anteriores do ColdFusion (pré CFMX) tinham uma limitação em que acessos simultâneos não protegidos à variáveis compartilhadas (como SESSION ou APPLICATION) podiam resultar em acessos indevidos à memória do servidor e, como consequência, falha do mesmo. Isso já não acontece com o ColdFusion MX, porém ainda existem casos onde devemos usar a tag CFLOCK. Primeiramente qualquer código que não é feito para acesso multi-usuário (tags de terceiros, acesso a arquivos de sistema, etc) deve ser protegido para garantir o acesso de forma sequenciada (em oposição ao acesso concorrente). Depois, mesmo que o acesso à variáveis compartilhadas não cause problemas no servidor, ele pode causar problemas de inconsistência na sua aplicação. Por exemplo, se uma aplicação atualiza um valor de uma variável do tipo APPLICATION e o código para esta atualização não está protegido com o lock, existe a possibilidade de usuários acessarem valores antigos (ainda não atualizados) e ao mesmo tempo valores novos (já atualizados). Talvez isso não seja um problema, dependendo da sua aplicação, porém se isso estiver afetando-a, é o caso de usar CFLOCK.