Vaga desenvolvimento para Joinville

17, janeiro, 2010 Sem comentários

Olá.

Temos disponível uma vaga para desenvolvimento web em Joinville – SC.

Requisitos:

  • Conhecimento em PHP 5;
  • Conhecimento em Javascript;
  • Bom conhecimento de lógica de programação;
  • Flexibilidade para adaptar-se à mudanças;

Desejável:

  • Conhecimento em Zend Framework 1.8+;
  • Conhecimento em framework Javascript (preferenciamente ExtJS);
  • Experiência com RIA;

Contato: enviar e-mail para kassner@gmail.com.

Até mais.

E-mails falsos

3, novembro, 2009 1 comentário

Olá a todos.

Participei de uma matéria para a Folha Metropolitana sobre e-mails falsos que foi publicada hoje. Abaixo escrevo mais detalhes sobre o assunto.

Quais são os cuidados com a caixa de entrada, ao receber e-mails desconhecidos?

Preferencialmente evitar abrir estes e-mails e verificar qual a origem do e-mail, se um amigo passou para outro ou um contato profissional. Em suma, o primeiro e-mail trocado com uma pessoa é mais de apresentação, e-mails como “veja essas fotos” ou “estou com saudades” vindos de pessoas desconhecidas certamente são armadilhas.

Como identificar e-mails que possam ter vírus?

Os vírus virão em anexos à mensagem. Abrir anexos somente de pessoas nas quais você confia é uma das prevenções. Utilizar anti-vírus que se integram aos clientes de e-mail ajudam a aumentar a proteção, pois eles identificam e-mails infectados.

Quais são os títulos mais comuns de e-mails que contém vírus?

E-mails de instituições financeiras em geral, dos quais pedem atualizações cadastrais ou que você instale algum componente para continuar utilizando. Ou ainda, surgiram casos de e-mails infectados disparando notícias como o fim do MSN, onde era necessário instalar um programa para continuar utilizando o mesmo.

Bancos, correios e algumas empresas não mandam e-mails para atualizar cadastro? Como se atentar a isso?

Primeiramente, verificar se a instituição nomeada no e-mail mantém algum vínculo com você. Já cancei de receber supostos e-mails do Banco Itaú, mesmo sem ter qualquer vínculo com eles. Outra detalhe é o cuidado com anexos e pedidos de informações. Se, por ventura, uma instituição financeira enviar um e-mail pedindo algum tipo de dado, vai pedir para que você retorne para alguma agência ou via telefone. Mesmo assim, quase nenhuma instituição faz o uso do e-mail como meio de comunicação com o cliente.

Qual a melhor maneira para evitar o recebimento de spams com conteúdo duvidoso?

Evitar publicar seu e-mail pela internet à fora. Comentários em outros sites incluindo seu e-mail são uma porta de entrada para o SPAM. Entretanto, o SPAM não pode ser evitado, resta ao usuário utilizar filtros e programas anti-spam (algumas empresas oferecem o mesmo incluso no próprio cliente de e-mail).

Na hora de excluir, é importante esvaziar também a lixeira?

Recomendo excluir o e-mail indesejado da lixeira também, apesar de que isso não é mandatório. Uma vez que o e-mail não seja aberto (ou seus anexos), o mesmo é praticamente inofensivo à sua segurança.

Quais são as consequências mais sérias dos e-mails falsos? O que são capazes de fazer?

E-mails pedindo dados bancários, praticamente não há dúvidas quanto à isso. Podem pegar suas informações financeiras e até mesmo senhas de Internet Banking. Além disso, certos tipos de vírus disseminados via e-mail podem até danifiicar fisicamente o seu computador.

Qual deve ser o cuidado em abrir anexos?

A dica é prestar atenção no tipo de arquivo que você recebeu. Imagens, por exemplo, possuem extensões como JPG, JPEG, GIF, PNG e BMP. Cada tipo de arquivo possui sua extensão pré-definida. Arquivos com a extensão EXE, COM e SRC devem ser evitados ao máximo, pois provavelmente são vírus em potencial.

O problema maior é que os usuários determinam o tipo do arquivo pelo seu ícone, em geral. Vírus são capazes de modificar seu ícone sem que o usuário perceba. Além disso, alguns sistemas operacionais, por padrão, ocultam a extensão do arquivo, o que traz mais risco ao usuário que não modifica essa configuração.

Qual é a melhor maneira de proteger o computador dessas invasões e garantir a segurança e o bom funcionamento do computador?

Utilizar anti-vírus ajuda, mas não é o necessário. É importante uma navegação segura e controlada por você mesmo. Acessar somente sites de confiança (preferencialmente os que são renomados). O cuidado deve ser redobrado ao baixar algum arquivo.

A partir de qual artifício os invasores criam esses spams perigosos. Eles relacionam fatos curiosos e notícias atuais que chamam a atenção e despertam a curiosidade de uma maneira geral?

Denegrir a imagem de alguma empresa, produto ou marca,como o recente e-mail do produto Activia, da Danone, ou a inundação do pátio da Volkswagen, denegrir a imagem de pessoas ou até mesmo gerar uma má impressão de políticos e meios de telecomunicações. Ainda assim, casos como o fim do MSN serve mais como um chamariz de endereços de e-mails para spammers, onde as pessoas simplismente reencaminham os e-mails e deixam as informações de para quem foi enviado, gerando listas enormes com e-mails reais de pessoas físicas.

Como você vê a falta de veracidade de informações que são propagadas nos e-mails através de correntes e acabam influenciando a vida das pessoas?

É da nossa cultura acreditar em tudo aquilo que vê (ou lê). Por mais que a informação não seja verídica, sempre haverá alguém que acreditará naquela informação e repassará a informação para seus contatos. Quando recebo correntes, indico aos remetentes procurarem em sites de notícias (especializados na área do assunto do e-mail) ou de buscas sobre o fato, onde o usuário pode saber o e-mail é um fato ou não. A dica de ouro é verificar no site E-Farsas, que contém esclarecimentos sobre as correntes mais famosas que circulam pelos e-mails.

Links úteis:

Javascript e permissões de acesso

20, outubro, 2009 Sem comentários

Olá a todos.

Depois de algum tempo sem postar (ocupado em alguns projetos), estou de volta. Desta vez trago uma espécie de idéia que estou tentando aperfeiçoar e qualquer incremento à ela será muito bem vindo.

Estou entrando em um projeto onde utilizamos ExtJS, uma biblioteca Javascript que permite a criação de interfaces ricas, principalmente para desenvolver sistemas web. Um exemplo básico você pode encontrar no site do ExtJS ou neste pequeno aplicativo base que desenvolvi (usuário: admin, senha: 1234).

Se você reparar neste aplicativo base, existe uma área onde configuram-se permissões aos grupos de usuários (atrelados aos usuários), de tal modo que a idéia é que se um usuário não tenha acesso à determinada área (por exemplo, adicionar um novo usuário), a opção não seja exibida (e preferenciamente nada referente seja carregado para evitar Javascript Injection).

No lado do servidor, que processa as requisições Ajax, nenhum problema. Se o usuário logado não tem permissão para listar os grupos, o acesso à essa lista é bloqueado, com uma classe simples que desenvolvi:

<?php

class DMG_Acl {
	// algumas implementações anteriores
	public function canAccess ($rule) {
		/* aqui são executadas algumas verificações no banco de dados para determinar se o usuário logado atualmente tem acesso à área que eu designo, referenciada em $rule dentro deste método. A saída é basicamente true para acesso permitido e false para acesso negado. */
	}
	// algumas implementações posteriores
}

Certo. A questão é como fazer com que o Javascript utilizado para montar as interfaces no ExtJS seja mínimo e seguro, carregando apenas o necessário, sem furos para possíveis injeções de Javascript.

A solução xula que encontrei foi, juntar o Javascript ao PHP, e fazer verificações internas. Por exemplo, se o usuário não tem acesso à regra 10, que permite o acesso à inserção de novos usuários, o método que utilizei fica próximo à:

<?php if (DMG_Acl::canAccess(10)): ?>
			{
				text: 'Adicionar usuário',
				iconCls: 'silk-add',
				scope: this,
				handler: this._onBtnNovoUsuarioClick
			},
<?php endif; ?>

Ok. Eu processo os arquivos como PHP normalmente, e recebo em Javascript somente o código do qual as permissões do usuário deixam, logo, o código acima só seria retornado caso o usuário possuir permissão de acesso na regra 10.

O grande problema: essa implementação é falha durante a mudança de permissões. Se um usuário retirar as permissões de outro usuário enquanto este está utilizando o sistema, a os botões ou links não irão sumir. No lado do servidor a regra surtirá efeito, porém não na interface.

Outro grande problema é a mistura do PHP com o Javascript e uma pequena gambiarra para fazer esse sistema de permissões funcionar, que não me agrada nem um pouco.

Queria deixar aqui uma dica para quem precisa de uma implementação deste tipo, mas também um alerta, que, acredito eu, não seja a maneira mais eficaz de se fazer isso, e ainda, um pedido de ajuda à quem tiver idéias para resolver este problema de forma mais correta.

Até mais,
Rafael.

Caravana para o PHPConfBR 2009

21, agosto, 2009 Sem comentários

Olá a todos.

UPDATE: nova pesquisa para fecharmos de vez a caravana;

Estou fazendo um levantamento inicial para organizar uma caravana e levar todos os interessados em PHP de Santa Catarina para o PHPConfBR, que acontece entre 26 e 29 de novembro de 2009 na UniFieo, em Osasco (SP). Quem estiver interessado, peço encarecidamente que leia e preencha a pesquisa para a caravana.

O Tiago Gigli está verificando hospedagens e translados por perto, e eu estarei verificando transporte. Aqueles que tiverem qualquer dúvida, dicas, idéias, ou seja lá o que for, entre em contato comigo.

Até mais,
Rafael.

Tags:

Problema: Cotação de moedas

23, junho, 2009 6 comentários

Olá a todos.

Esta semana quebrei a cabeça com cotações de moedas. Precisava obter a cotação do dia anterior e exibir no site. Parece algo simples, mas precisava disto automatizado. Lembrei que no República Virtual existia (verbo no passado, para minha felicidade) um Webservice de cotação.

A solução, apesar de não ser muito eficaz, é pegar do próprio HTML de outros sites, já que nenhum deles fornece algum tipo de WebService. Abaixo um exemplo para pegar as cotações do site de economia da UOL, porém, isso pode parar de funcionar a qualquer momento:

<?php

$s = file_get_contents("http://economia.uol.com.br/cotacoes/");

$a = explode("<div class=\"col-1-direita\">", $s);
$b = explode("<script", $a[1]);
$c = str_replace("<th>VARIAÇÃO</th>", "", trim($b[0]));
$c = eregi_replace("<td><span class=\"variacao\">(.[0-9,%]*)</span></td>", "", $c);
$c = explode("\n", $c);

$bov = file_get_contents("http://cotacoes.economia.uol.com.br/index.html");
$d = explode("<tbody>", $bov);
$e = explode("<td title=", $d[1]);
$f = explode(">", $e[1]);
$g = explode("<", $f[1]);

$dc = explode("<td>", $c[8]);
$dp = explode("<td>", $c[11]);
$dt = explode("<td>", $c[14]);
$eu = explode("<td>", $c[17]);

$dolar_comercial_compra = substr($dc[1], 0, strpos($dc[1], "<"));
$dolar_comercial_venda = substr($dc[2], 0, strpos($dc[2], "<"));
$dolar_paralelo_compra = substr($dp[1], 0, strpos($dp[1], "<"));
$dolar_paralelo_venda = substr($dp[2], 0, strpos($dp[2], "<"));
$dolar_turismo_compra = substr($dt[1], 0, strpos($dt[1], "<"));
$dolar_turismo_venda = substr($dt[2], 0, strpos($dt[2], "<"));
$euro_compra = substr($eu[1], 0, strpos($eu[1], "<"));
$euro_venda = substr($eu[2], 0, strpos($eu[2], "<"));
$indice_bovespa = $g[0];

?>

O Banco Central fornece um CSV com diversas cotações, porém sua URL vai variando conforme o dia. Quem tiver interesse de utilizar, segue o endereço base: http://www4.bcb.gov.br/pec/taxas/batch/cotacaomoedas.asp?id=txtodas&id=txtodas. Vale lembrar que o Banco Central não informa valores para Dólar Turismo e Dólar Paralelo.

Até mais,
Rafael.