quinta-feira, 19 de dezembro de 2013

Dicas para manter seu computador/sistema em SEGURANÇA


Meu computador pode ser atacado??? Como assim!?

Seguidamente recebo solicitações de amigos para retirar vírus de computadores. Isso é uma tarefa extremamente cansativa e que demanda muito tempo.

Portanto a maioria dos técnicos de informatica normalmente nem procuram o problema de fato, formatam o computador sem dó, nem piedade, pois vai sair muito mais barato para o cliente e menos trabalhoso para o técnico. Mas como é para meus amigos, acabo passando bastante tempo retirando manualmente os vírus, isso é complicado, pois as vezes nem tenho todo esse tempo.

Porém, é possível prevenir e postergar esse transtorno, tomando algumas medidas de segurança, as quais vou citar logo a baixo.

Dica um:

O primeiro passo, e o mais básico de todos para manter seu computador seguro é instalar um bom anti-virus e mante-lo sempre atualizado. Existem alguns tipos de virus que tentam impedir que seu anti-virus seja atualizado automaticamente, então é de suma importância verificar periodicamente se está tudo certo com as atualizações.

Segue uma lista com os melhores anti-vírus, os quais testei, tecnicamente falando, mas se não puder usar um desses, use AVG, Avast, NOD32 ou qualquer outro do mercado, eles cumprem com o seu papel também.

Kaspersky (Site oficial)
Não existe versão gratuita, somente versão de teste por um período determinado. Mas se você está pensando em investir em segurança, é um ótimo anti-virus. Ele tem uma das melhores análises heurísticas que já vi (O que é análise heuristica?).
O único problema que encontrei, é que ele é um pouco pesado(na versão 2013) em comparação a outros dessa lista.

Bitdefender (Site oficial)
Esse anti-vírus tem me surpreendido a cada dia, e para quem não entende nada de informatica, ele faz o serviço bem feito e sem incomodar. Interface de usuário muito simples e extremamente rápido. O único defeito que encontrei, é que em certas maquinas a instalação da alguns probleminhas. Estou usando esse na versão gratuita e estou extremamente inclinado a comprar a versão de 2014 dele.

BullGuard(Site oficial)
Ótimo anti-vírus. Só que é um pouco mais dependente do usuário pra certas coisas que usuário comum não entende, ou não quer saber. Fora isso, é tão bom quando os outros da lista.

Dica dois:


Baixar e instalar o programa chamado "BankerFix"(Download e instruções de uso), o qual auxilia na remoção de alguns tipos de vírus que roubam informações sigilosas como senhas de banco, senhas de email, facebook, etc...

Baixar e instalar o programa chamado "Spybot – Search & Destroy", esse cara é ótimo para prevenir ataques de hackers e remover spyware(vírus).

Não basta só fazer download e instalar esses programas. Periodicamente você deve executa-los para que eles façam seu trabalho.

Se você já entende um pouco mais sobre redes de computadores aconselho a usar um firewall. Ele serve como um filtro dos dados que entram e saem de seu computador, avisando até mesmo quais programas tentam acessar a internet.

Um ótimo firewall que recomendo é um chamado "Comodo Firewall" (Site oficial).

Dica três:


Sempre desconfie de tudo na internet. A internet é a coisa mais linda, mas se você não tiver um certo cuidado para passear por ela, pode ter sérios problemas. Quando digo "cuidado", é o mesmo que atravessar uma avenida ou rua, olhe para os dois lados sempre.

Hoje em dia é possível injetar vírus em alguns tipos de arquivos aparentemente inofensivos, como o PDF por exemplo. O ideal é manter o seu leitor de PDF como o "Acrobat Reader" sempre atualizado. Mantenha todos os programas que fazem leituras de textos, livros, músicas sempre atualizados. Isso vai ajudar bastante a combater esses vírus "Injetados" e principalmente, MANTENHA SEU NAVEGADOR DE INTERNET ATUALIZADO, Seja ele qual for(Internet Explorer, Firefox, Chrome), eles são extremamente importantes para sua segurança de navegação.

Sites com conteúdo erótico, são especialmente usados para disseminação de vírus. Portanto antes de entrar em algum, consulte na internet se o mesmo é seguro.

Dica quatro:


Se você possui uma câmera(webcam) conectada em seu computador e ligada constantemente MANTENHA ELA VIRADA PARA A PAREDE, sim... Um hacker pode estar te olhando nesse exato momento através dela. Existem alguns tipos de vírus que tomam o controle total de seu computador, sendo possível até mesmo observar pela webcam sem que você saiba. Portanto, vire a câmera para você somente quando for usar.

Para os amigos que tem notebook e estão tapando com o dedo a câmera, nesse exato momento:
Fique calmo, sempre que o hacker tentar te observar pela webcam um LED(lampada) ao lado da câmera vai acender, normalmente todos os notebooks possuem essa lampada, para avisar ao usuário que ela está capturando algo. Mas por precaução use um uma fita branca em cima dela.

Pode até parecer neurose, mas vai por mim... Vale a pena seguir essa dica.

Dica cinco:


Somente execute os seguintes tipos de arquivos se você tem certeza da origem deles:
arquivo.exe (exe)
arquivo.com (com)
arquivo.pif (pif)
arquivo.bat (bat)
arquivo.vbs (vbs)
arquivo.scr (scr)

Dica seis (Essa é a mais legal! Hehehe):


Se você tem uma empresa que usa algum sistema baseado em web(que usa um navegador de internet para acessar) ou até mesmo um site dinâmico ou portal, me contrate para fazer testes de segurança.

Eu presto consultoria de segurança de informação e posso passar informações cruciais para os desenvolvedores protegerem os dados de sua empresa.

Fim das dicas, espero que sigam todas, hehehe.
=)
Um abração a todos.

domingo, 15 de dezembro de 2013

Como criar um REST API com Yii Framework

O que é?

O que é REST?

Resposta: http://pt.wikipedia.org/wiki/REST

O que é REST API com Yii Framework?

É uma forma de criar uma camada REST na aplicação feita com Yii. Nesse formato mostrado no artigo, é possivel usar de varios recursos do Yii Framework para desenvolver a API sem fazer uso de frameworks de terceiros.

Segue o link:

http://www.yiiframework.com/wiki/175/how-to-create-a-rest-api/

segunda-feira, 15 de julho de 2013

Testes automatizados com PhantomJS

O que é?

PhantomJS é uma ótima ferramenta para automatizar testes para sistemas para WEB.


Mas o que ele tem de bom?

Algumas coisas são:

  • Não é necessário um browser para executar os testes, pois ele possui um executável que roda tudo "por de baixo dos panos". Isso acelera todo o processo;
  • Ele gera imagens dos testes realizados. "page.render('example.png');" e ta feito;
  • Site oficial com toda a informação necessária, documentação clara e objetiva com muitos exemplos;
  • É possível executar todos os testes sem qualquer risco de conflito com variáveis e/ou prints em console realizados pela própria página;
  • É possível rastrear todas as requisições e respostas feitas pela página a qualquer momento. (por callback)

Mas porque automatizar os testes, se eu mesmo posso testar?

Na minha humilde opinião, é extremamente necessário automatizar testes. Até porque, testar SQL Injection em todos os formulários de um sistema manualmente, é extremamente cansativo. Claro que esse é um, dos milhares de motivos para automatizar testes, mas se eu for citar tudo, não vou terminar esse "post" tão cedo... #preguiçavéia

Na verdade, acredito que o verdadeiro objetivo de automatizar os testes, é verificar se o sistema está atingindo a expectativa mínima aceitável de alguns requisitos que foram definidos para um projeto, tanto para os requisitos funcionais como para os não funcionais. Um exemplo disso é que os testes podem ser criados até mesmo antes do início do desenvolvimento, para garantir que certos objetivos sejam alcançados durante o desenvolvimento (segurança, qualidade, etc...).

Se você pesquisar um pouco na web, vai descobrir que teste não é "só teste", existem até metodologias para desenvolvimento baseado em testes automatizados, como o TDD(Test Driven Development).

Todavia, não acho que testes manuais devam ser descartados, na verdade, um complementa o outro.

Site oficial:

http://phantomjs.org/

Créditos especiais para Lucas Lazari que me indicou o PhantomJS.

Concorda ou descorda de alguma coisa? Quero saber sua opinião! Comenta ae. =D

quarta-feira, 6 de fevereiro de 2013

Bootstrap: Framework Front-end do twitter

O que é?

É um framework para construção de front-end para web.

Para que serve isso?

Sabe quando você investe várias horas escrevendo CSS e javascript para fazer telas bonitas, organizadas e fluidas?

Pois bem... Esse framework vai ajudar você a economizar essas horas, ele é muito intuitivo e simples de usar.

Mas como isso funciona?

Você faz seu HTML e chama as classes CSS do bootstrap. Simples... =D

Alguns exemplos em:

http://twitter.github.com/bootstrap/base-css.html

Site oficial:

http://twitter.github.com/bootstrap/

quinta-feira, 17 de janeiro de 2013

Boilerplate: O front-end mais popular do mundo


O que é?


"Boilerplate HTML5 ajuda a construir aplicações web ou sites rápidos, robustos e adaptáveis."

É uma estrutura, que possui um conjunto de frameworks visuais para ajudar no desenvolvimento da interface da sua aplicação ou site.

Como isso pode ajudar?


Sabe aquele projeto que te faz ficar mais horas que o normal, na frente do computador, fazendo mil e um testes com um arquivo CSS, para fazer a interface ficar um pouquinho mais fluida, ou para fazer a interface se adaptar a resoluções muito baixas, ou até mesmo adaptar aquele layout que funciona em todos os navegadores menos no IE(Internet Explorer)?

Pois bem, esqueça tudo isso, agora usando o Boilerplate como base para seu front-end todos esses problemas não existem mais, ou melhor, existem mas não vão mais te incomodar.

Mas é só isso?


Não...

O Boilerplate já traz uma main page ou master page com tudo carregado e integrado. Algumas das coisas que o já vem pronto e carregado para você:

  • Mobile-first Responsive
  • Responsive Bootstrap 2.2.1
  • Modernizr
  • jQuery
  • IE Classes
  • Chrome Frame
  • Google Analytics
  • .htaccess
  • Favicon
  • Apple Touch Icons
  • plugins.js
  • Robots.txt
  • Humans.txt
  • 404 Page
  • Adobe Cross Domain

Muitas dessas coisas, não tem mistério para incluir na aplicação, porem só em pensar no tempo que economizamos pensando, fazendo download e verificando a compatibilidade, já vale a pena usar.

Quem usa isso?


Google, Microsoft, NASA, Nike, Barack Obama,Mercedes-Benz, ITV News, BAE Systems, Creative Commons, Australia Post, Entertainment Weekly,Racing Green

Empresinhas né?

Por onde começar:

Segue o site oficial do Boilerplate:



Comentem e perguntem, ficarei feliz em ajudar no que puder.

terça-feira, 15 de janeiro de 2013

Simple HTML DOM: Mineração de dados com PHP


O que é?


Nada mais é que um parser HTML escrito em PHP5+, que permite manipular HTML de uma forma incrivelmente fácil!

No que isso pode ajudar?


Dentre todas as possibilidades, posso citar um exemplo bem simples, que me veio em mente logo que conheci essa biblioteca.
Um tempo atras(meados de 2011), freqüentemente eu e meus colegas de trabalho fazíamos bolões da mega-sena, mas fazíamos muitos jogos que se repetiam durante varias rodadas, então nós precisávamos de um aplicativo para controlar dinamicamente sem que precisássemos conferir todos os jogos a cada rodada. Foi aí que veio a ideia... Vamos criar um software! UAUUU...
Após uma correria de 3 dias, fizemos um sisteminha.

Nosso trabalho para usar esse tal sisteminha era:

1) fazer o download do arquivo dos resultados da mega (http://www1.caixa.gov.br/loterias/loterias/megasena/download.asp);

2) Descompactar o zip;

3) Importar o arquivo xls (era xls na época) no sistema;

4) E então verificar se tínhamos ganho algo;

Muito trabalho, não acha???

Se conhecêssemos esse "Simple HTML DOM" naquela época, teríamos somente o trabalho de acessar o sisteminha e verificar se tínhamos ganho algo.

Porque??? Como???

Simples...

Com essa biblioteca(Simple HTML DOM) poderiamos fazer o nosso sistema acessar o site dos resultados da mega-sena(http://www1.caixa.gov.br/loterias/loterias/megasena/megasena_resultado.asp) e pegar os resultados em tempo real da própria tela, então o sistema analisa, compara com os nossos jogos e logo mostra se ganhamos algo.

Não entendeu nada?


Ok...

Vamos a prática de um outro exemplo tirado do próprio site da biblioteca e traduzido:

web_crawl_google.php:
------

// Cria o DOM da URL (Transforma em um objeto PHP)
$html = file_get_html('http://www.google.com/');

// Procura todas as imagens da pagina principal do Google,

// para cada elemento imprime a propriedade src.
// Exemplo: <img src="pastaX/img.jpg">   iria imprimir    pastaX/img.jpg
foreach($html->find('img') as $element) {
           echo $element->src . '<br>';
}

// Busca todos os links e também imprime na tela.
foreach($html->find('a') as $element)  {
           echo $element->href . '<br>';
}

------

Ou seja... Por de baixo dos panos, o PHP foi la no site do Google, pegou todo o HTML gerado que por sua vez foi manipulado com o código acima, que por fim apresenta pro usuário final somente os SRC das imagens e os HREF dos links.

Mas só serve para isso?


Claro que não... Dê asas a sua imaginação e use para o que quiser!

Lembre-se que você pode pegar elementos específicos de um site e trata-los da forma que você quiser.

Você pode por exemplo...


Pegar informações do seu veículo no site do Detran, se sair alguma multa o sistema envia um email para você avisando... Legal né???

Por onde começo?


Acesse o site da biblioteca, la você vai encontrar vários exemplos e o download, que é o mais importante.

http://simplehtmldom.sourceforge.net/


Então faça algo legal e me conte nos comentários!


Agradecimentos:


Em especial ao Jean Farias Roldão que me apresentou a biblioteca.


Comentem e perguntem, ficarei feliz em ajudar no que puder.

domingo, 13 de janeiro de 2013

Slim Framework: RESTful sem complicações

O que é?


É um framework PHP que ajuda no desenvolvimento rápido de aplicações e APIs, baseadas ou não em REST.

O que é REST?


A REST (Transferência do Estado Representativo) é pretendida como uma imagem do design da aplicação se comportará: uma rede de websites (um estado virtual), onde o usuário progride com uma aplicação selecionando as ligações (transições do estado), tendo como resultado a página seguinte (que representa o estado seguinte da aplicação) que está sendo transferida ao usuário e apresentada para seu uso. Dr.Roy Fielding


Resumindo RESTful...


O termo se usa no sentido mais amplo para descrever qualquer interface web simples que utiliza XML e HTTP (ou YAML, JSON, ou texto puro), sem as abstrações adicionais dos protocolos baseados em padrões de trocas de mensagem como o protocolo de serviços web SOAP.

No que o Slim Framework pode ajudar?


Ele ajuda a construir rapidamente aplicações baseadas em REST. Ele é tão fácil de usar, que você pode integra-lo com qualquer framework que ja esteja usando ou então desenvolver um middleware para sua aplicação.

Mas como isso funciona?


Digamos que você queira gerar listas dinâmicas em seu site ou sistema. Lista de clientes, fornecedores, produtos, etc... Mas você não quer que isso retorne em apenas uma requisição AJAX, pois vai precisar dessas informações em diversas telas, em algumas somente clientes e produtos, em outra fornecedores e produtos, outra somente com clientes... Esse tipo de coisa exige um pouco mais de disciplina e organização de código.

É aí que entra nosso "amigo" Slim Framework!

Você  mapeia onde devem cair as requisições e ele controla tudo. Respondendo conforme necessário.

Por exemplo:

Você cria um arquivo o qual vai mapear as requisições:
mapa.php


    <?php
    $app = new \Slim\Slim();

    $app->get('/clientes/:idade', function ($idade) {
        echo json_encode($bancoDeDados->buscaClientes($idade));
    });
    
    $app->get('/fornecedores/', function () {
        echo json_encode($bancoDeDados->buscaFornecedores());
    });
    
    $app->get('/produtos/:letra_inicial', function ($letra_inicial) {
        echo json_encode($bancoDeDados->buscaProdutos($letra_inicial);
    });

    $app->run();
    ?>

Quando alguma requisição HTTP for feita para "http://suaaplicacao.com/clientes/20", a resposta vai ser uma estrutura JSON com todos os clientes que tem 20 anos de idade.

A mesma coisa vai acontecer com as outras, "http://suaaplicacao.com/fornecedores/" e "http://suaaplicacao.com/produtos/g";

Isso são apenas exemplos de requisição por GET.

Com o Slim, alem de GET, podemos mapear com POST, DELETE, PUT, entre outros.

Por onde começar?


Acesse o site oficial do projeto: http://www.slimframework.com/
La você vai encontrar tudo que precisa.

Comentem e perguntem, ficarei feliz em ajudar no que eu puder.

CodeIgniter: Lucre mais com ele.

O início...


CodeIgniter foi o primeiro Framework php com o qual eu tive contato. Graças a ele me interessei a entrar no mundo dos frameworks e estudar tudo que tem disponível no mercado para ajudar a fazer meu trabalho.

Porque reinventar a roda?


Desenvolvedores mais novos, acabam por querer fazer tudo "no braço" por falta de conhecimento para começar a usar algum framework, e os mais antigos fazem o mesmo, para manter um certo "status" de: "Não preciso dessas coisas prontas". Porem, se parar para pensar um pouco mais, tudo isso não passa de preguiça e EGO. Quando temos algo pronto e colaborativo(Código aberto) que se encaixe em algum projeto, devemos usar. Essa atitude traz qualidade na maioria dos casos e agrega valor ao projeto, pois alem de diminuir o tempo de desenvolvimento, ajuda a manter o foco no desenvolvimento da regra de negócio.

O desenvolvimento de software/site é como construir algo complexo, como um carro por exemplo. Se for construir todas as peças para cada carro que for fazer, acaba gastando muito mais tempo e dinheiro do que se comprasse algumas peças genéricas de outras empresas. Mas claro, se você realmente está disposto a reinventar a roda, tenha a certeza que seu lucro financeiro será menor...

Compatibilidade


Com a sua facilidade e flexibilidade, é possível usar esse framework em qualquer versão do PHP a partir do PHP 4.x. Não que isso seja um baita diferencial, mas digamos que ajuda, de certa forma.

Para que ele serve?


Dos 2 anos de experiência que tenho com o CodeIgniter, posso dizer que ele serviu para tudo até agora. Sites e sistemas se tornaram um "mel na chupeta" de fazer.

Rápido de aprender


Em menos de uma semana de estudos eu já tinha condições de fazer qualquer tipo de projeto para WEB.

Documentação


A documentação é clara e super objetiva, pois mantem um padrão de estrutura de informação fantástica e inovadora (na minha opinião), isso torna tudo muito prático na hora de consultar algo sobre determinada biblioteca que o compõe.

Segue o link da documentação:
http://ellislab.com/codeigniter/user-guide/

Como começar?


Passo 1:
Faça download da ultima versão do FW no link:
http://ellislab.com/codeigniter/download

Passo 2:
Descompacte o arquivo na pasta de seu servidor WEB.

Passo 3:
Acesse a pasta através de seu navegador WEB. Exemplo: "http://localhost/pasta_codeigniter/index.php".

Passo 4:
Leia a documentação do CodeIgniter, na parte que fala a respeito de MVC.

Passo 5:
Seja feliz, e aumente seu lucro nos seus projetos.

Comentem e perguntem, ficarei feliz em ajudar no que eu puder.