WhatsApp e Telegram corrigem falha de segurança em desktop

WhatsApp e Telegram corrigem falha de segurança em desktopFalha de segurança em aplicativos

No dia 15 de março, a Check Point Software divulgou vídeos que demonstravam erros de segurança nas versões para web do WhatsApp e do Telegram. A falha comprometia a segurança de uma maneira simples: o hacker enviava um arquivo com um código pré-definido, e quando a vítima realizava o download e abria o arquivo, ocorria a invasão. Pelo WhatsApp a invasão seria mais simples de ser realizada; já pelo Telegram, a vítima teria que ter atitudes um pouco “anormais” para que o ataque ocorresse, mas de todo modo seria possível.

Quando ocorre em aplicativos, a validação de dados é um processo controlado e que não insere códigos novos devido à forma como o próprio aplicativo é construído, uma vez que todo o conteúdo é criptografado. Porém, na versão WhatsApp Web, utiliza-se o Javascript para esta função. Esta linguagem de programação é versátil, e pode facilmente receber novos comandos feitos por pessoas que a conheçam.

Falha já foi corrigida, mas usuários devem reiniciar suas sessões

O código do aplicativo já foi retificado, e agora a empresa recomenda que os usuários reiniciem suas sessões para garantir que estão usando a versão atualizada do serviço de mensagens. Outros serviços de mensagens, como Skype e Facebook Messenger, ainda não foram testados para verificar se possuem a mesma falha, mas devemos ressaltar que manter seus dados seguros é muito importante, e é preciso ter precaução com downloads realizados. >

Visto que hoje a segurança on-line pode ser falha em diversos aspectos, garanta a segurança do seu site ou seus arquivos com a Target Host, empresa de soluções de internet, e conheça os serviços que temos para oferecer.

Quais são os desafios do empreendedorismo digital?

A década de 2010 certamente ficará marcada pelo ingresso das empresas pelo mundo digital. Se antes bastava apenas ter um site simples, no estilo “só-pra-não-dizer-que-não-tem”, hoje em dia não estar ativamente na internet pode até ser considerado um ponto negativo para uma empresa. Entretanto, todo esse mar de possibilidades que a web oferece ainda é bastante confuso para muitos donos de empresa. Então, quais são os desafios do empreendedorismo digital?

Quais são os desafios do empreendedorismo digital?

Conheça tudo o que a internet pode fazer por você

Pesquisa de campo: certamente, você deve ter lido sobre isso na faculdade, minicurso ou até mesmo em algum livro com que você estudou para começar no empreendedorismo digital. Isso é o mínimo necessário para entender o que você pode fazer na internet de forma mais assertiva. Quais são as jogadas de marketing que estão funcionando no mercado? Será que usar e-mail marketing seria tão ruim assim? Como criar um site?

Essa é uma etapa que requer planejamento. E também é importante que seja sempre reavaliada. Afinal, o mercado e o mundo digital mudam constantemente, e uma estratégia pode ficar ultrapassada em questão de meses.

Quem faz empreendedorismo digital deve saber gerenciar seu dinheiro

Esteja no âmbito digital ou não, todo empreendedor precisa saber onde, quando e quanto investir. E tudo isso requer estratégia. Tenha um eficiente controle de caixa e gerencie o momento certo de fechar parcerias ou até mesmo de cancelar um contrato. Lembre-se que raramente o que é mais barato vai ser o mais lucrativo para você.

Inovador: algo que um empreendedor digital precisa ser

Saiba arriscar. Como foi mencionado anteriormente, tudo requer estratégia. Mas, por outro lado, “quem não arrisca, não petisca”. Veja se o momento está propício para arriscar e vá em frente. Pense que se fizer apenas o que todo mundo está fazendo, você vai ser só mais um. Para ser referência e destaque, é preciso inovar, ainda mais no mundo digital.

“Sou empreendedor digital e preciso de ajuda”

Percebeu que o empreendedorismo digital precisa de mais do que apenas ter um site e uma conta nas redes sociais? É preciso entender a gama de possibilidades que a internet te dá, saber o quanto se pode investir e até mesmo arriscar um pouco (com responsabilidade, claro). É para dar a você todas as ferramentas necessárias para isso que a Target Host, empresa de soluções em internet, existe. Temos diversos planos com preços que cabem no seu orçamento. Entre em contato conosco e conheça mais sobre nossos serviços.

Instagram: Ampliação da infraestrutura

instagramEm 2013, um ano após o Instagram se juntar ao Facebook, 200 milhões de pessoas usavam o Instagram todo mês e foram armazenadas 20 bilhões de fotos. Sem um abrandamento à vista, o Instagram começou a mudança, dos seus servidores na Amazon AWS para a infraestrutura do Facebook. Dois anos depois, o Instagram cresceu e virou uma comunidade com mais de 400 milhões de acessos por mês e 40 bilhões de fotos e vídeos, atendendo a um milhão de solicitações por segundo. Para continuar suportando esse crescimento e ter a certeza de que a comunidade do Instagram esteja tendo a melhor experiência possível com o aplicativo, eles decidiram dimensionar sua infraestrutura geograficamente. Neste post você saberá o porque deles ampliarem sua infraestrutura de um para três datacenters e quais os desafios técnicos eles encontraram ao longo do caminho.

A Motivação do Instagram

Mike Krieger, co-fundador do Instagram e CTO, recentemente escreveu um post em seu site que incluía uma história sobre o clima em 2012, quando uma enorme tempestade na Virgínia derrubou quase metade do seu datacenter. O time deles era pequeno, levaram 36 horas para reconstruir a infraestrutura perdida na tempestade. Desastres naturais como este tem um potencial para fazer estragos temporários ou permanentes nos datacenters, e eles querem ter a certeza de que irão conseguir passar por esses danos com o mínimo de impacto possível para os seus usuários.

Outras motivações para eles quererem aumentar sua infraestrutura incluem:

  • Resiliência em questões regionais: Mais comum que desastres naturais são as desconexões, problemas de energia, etc. Por exemplo, assim que eles expandiram os servidores para o Oregon, um dos racks contendo memcache e servidor async foi desligado, o que causou grandes falhas para as solicitações de usuários. Com a nova infraestrutura, eles são capazes de desviar o tráfego da região para contornar o erro até a energia ser recuperada.
  • Flexibilidade com a capacidade de expansão: O Facebook tem vários datacenters. É muito mais fácil expandir a capacidade do Instagram quando ele está disponível e quando sua infraestrutura está pronta para expandir além de uma região, mesmo quando há uma considerável latência na rede. Isso ajudou a tomar decisões rápidas sobre como obter novos recursos para os usuários sem ter que lutar por recursos de infraestrutura para apoiá-los.

De um para dois

Então, como eles conseguiram iniciar essa ampliação? Primeiro veremos como funciona a infraestrutura do Instagram.

Instagram: Ampliação da infraestrutura

A chave para a expansão em múltiplos datacenters é distinguindo os dados globais e os dados locais. Os dados globais precisam ser replicados em todos os centros de dados, e os dados locais podem ser diferentes para cada região (por exemplo, os async jobs criados por um servidor web apenas podem ser vistos naquela região).

A próxima consideração são os recursos de hardwares. Eles podem ser divididos em três tipos: armazenamento, processamento e cache.

Armazenamento
O Instagram utiliza principalmente dois sistemas de banco de dados back-end: PostgreSQL e Cassandra. Os dois tem estruturas de replicação consistentes que funcionam bem como armazenamento de dados global.

Os dados globais mapeiam perfeitamente aos dados armazenados nesses servidores. O objetivo é ter uma eventual consistência desses dados através do datacenter, mas com um atraso em potencial. Como a maioria das operações são de leitura, ler a réplica de cada região evita o cruzamento dos diferentes datacenter com os servidores web.

Escrever para o PostgreSQL, no entanto, ainda é feito através dos diferentes datacenters pois eles sempre vão escrever para o servidor primário.

Processamento
Servidores web e servidores async são dois recursos facilmente distribuídos e que, só precisam ser acessados localmente. Os servidores Web podem criar async jobs em fila por intermédio de mensagens async que serão em seguida consumidos por servidores async. Todos na mesma região.

Cache

A camada de cache é a camada mais acessada do servidor web, e eles precisam ser colocados dentro de um datacenter local para evitar latência de conexão até os usuários. Isso significa que as atualizações para a armazenagem em cache no datacenter não são refletidas no outro datacenter, portanto, criando um desafio para mudar-se para vários datacenters.

Imagine que um usuário comentou uma foto recém-lançada. No caso de um datacenter, o servidor web que recebeu o requerimento pode simplesmente atualizar o cache com o novo comentário. Um seguidor vai ver o novo comentário do mesmo cache.

No cenário de vários centros de dados, no entanto, se o comentário e o seguidor são servidos em diferentes regiões, o cache da região do seguidor não vai ser atualizado e o usuário não verá o comentário.

A solução foi usar o PGQ e melhorá-lo para inserir eventos de invalidação de cache para os bancos de dados que estão sendo modificados.

No lado primário:

  • O servidor web insere o comentário para o PostgreSQL DB;
  • O servidor web insere uma entrada de invalidação do cache no mesmo DB.

No lado da réplica:

  • Replicar o DB primário, incluindo tanto o comentário inserido recentemente, quanto a entrada de invalidação do cache.
  • O processo de invalidação do cache lê a entrada de invalidação de cache e invalida os caches regionais.
  • O Django vai ler o DB com o comentário inserido recentemente e vai recarregar o cache.

Isto resolve o problema de coerência do cache. Por outro lado, em comparação com o caso de uma região onde os servidores Django atualizam diretamente o cache sem re-leitura do DB, isso criaria um aumento da carga de leitura dos bancos de dados. Para acabar com esse problema, eles pegaram duas abordagens: 1) reduzir os recursos computacionais necessários para cada leitura para desnormalizar os contadores; 2) reduzir o número de leituras usando locações de cache. >

Desnormalizando Contadores

As peças mais comuns do cache são os contadores. Por exemplo, eles usam um contador para determinar o número de pessoas que deram Like num post específico do Justin Bieber. Quando há apenas uma região, eles atualizam os contadores do Memcache incrementando dos servidores web. Evitando assim um “select count(*)” chamando para o banco de dados, o que levaria centenas de milissegundos.

Mas com duas regiões e a invalidação PgQ, a cada Like novo cria-se um evento de invalidação de cache para o contador. Isso irá criar um monte de “select count(*)”, especialmente em hot objects.

Para reduzir os recursos necessários para cada uma dessas operações, eles desnormalizaram o contador de Likes nos posts. Sempre que um novo Like é realizado, a contagem é aumentada no banco de dados. Portando, cada leitura da contagem será apenas um simples “select” o que é muito mais eficiente.

Existe também um benefício adicional em desnormalizar contadores no mesmo banco de dados, onde o Like é armazenado. Ambas as atualizações podem ser incluídas em uma transação, fazendo com que as atualizações sejam rápidas e consistentes o tempo todo. Considerando que, antes de mudança, o contador no cache pode ser inconsistente, como o que foi armazenado no bando de dados, devido ao tempo de espera, novas tentativas, etc.

Memcache Lease

No exemplo acima de um novo post do Justin Bieber, durante os primeiros minutos do post, tanto a visualização do novo post quanto os Likes tem um pico. Cada novo Like, o contador é excluído do cache. É muito comum que os servidores web vão tentar tentar recuperar o mesmo contador do cache, mas ele terá um “cache miss”. Se todos eles forem para o servidor de banco de dados para recuperação, criaria um problema Thundering Herd.

Logo, eles usaram o mecanismo de memcache lease para resolver este problema. Ele funciona assim:

  • O servidor web emite um “lease get”, e não o normal “get” do servidor memcache.
  • Servidor memcache retorna ao valor se ele for um sucesso. Neste caso, não é diferente de um normal “get”.
  • Se o servidor memcache não encontrar a chave, ele retorna a “first miss” para apenas um servidor de web dentro de “n” segundos; qualquer outra solicitação “lease get” durante esse tempo terá um “hot miss”. No caso de um “hot miss” onde a chave foi deletada do cache recentemente, irá voltar ao valor obsoleto. Se a chave do cache não surgir em “n” segundos, novamente terá um “first miss” para um pedido de “lease get”.
  • Quando um servidor web recebe um “first miss”, ele vai para o banco de dados para recuperar dados e preencher o cache.
  • Quando um servidor web recebe um “hot miss” com um valor obsoleto, ele pode normalmente utilizar esse valor. Se ele recebe um “hot miss” sem qualquer valor, ele pode optar por esperar o cache ser preenchido pelo servidor web no “first miss”.

Em resumo, com ambas as implementações acima, pode-se reduzir o aumento da carga do banco de dados, reduzindo o número de acessos à base de dados, assim como os recursos necessários para cada acesso.

Ele também melhorou a confiabilidade do backend nos casos em que alguns hot counters caiam para fora do cache, o que não era uma ocorrência pouco frequente nos primeiros dias do Instagram. Cada uma destas ocorrências causaria algum trabalho apressado de um engenheiro para corrigir manualmente o cache. Com essas mudanças, esses incidentes se tornaram história para os engenheiros veteranos.

Latência 10ms para 60ms

Até agora, eles tem se concentrado principalmente na consistência do cache quando os caches se tornaram regionais. A latência na rede entre centros de dados em todo o continente foi outro desafio que impactou vários modelos. Entre os centros de dados, uma latência de 60ms de rede pode causar problemas na replicação de dados, bem como as atualizações de servidores web para o banco de dados. Eles precisaram resolver esses problemas afim de apoiar uma expansão contínua:

Leitor de réplicas PostgreSQL não atualiza
Primeiramente o Postgre faz gravações e depois gera os delta logs. Quanto mais rápida as gravações entrarem, mais frequentemente esses logs serão gerados. Os primeiros logs mais recentes vão ser arquivados para ocasionais necessidades de réplica, é arquivado todos os registros de armazenamento para ter certeza de que eles estão salvos e acessíveis para quaisquer réplicas que precisem de dados mais antigos do que os primários. Desta forma, o primário não fica sem espaço no disco.

Quando é feito a leitura da réplica ela começa a ler o snapshot do banco de dados desde o primário. Uma vez feito isso, ele precisa aplicar os logs que entraram desde o snapshot do banco de dados. Quando todos os logs são aplicados, ele vai estar atualizado e pode transmitir a partir do primário e servir leituras para servidores web.

No entanto, quando a taxa de gravação de um banco de dados grande é bastante elevada, e há uma grande quantidade de latência de rede entre a réplica e o dispositivo de armazenamento, é possível que a velocidade que os logs são lidos seja mais lenta que a velocidade de criação dos logs. A réplica irá cair ainda mais e mais e nunca atualizar.

Eles começaram a corrigir esse problema iniciando um segundo fluxo no novo leitor de réplica logo quando começa a transferência de base snapshot a partir do primário. Isso pega o fluxo de logs e salva eles no disco local. Quando o snapshot acaba de transferir, o leitor de réplica vai conseguir ler os logs locais, fazendo esse processo de recuperação ficar muito mais rápido.

Isso não só solucionou os acontecimentos com a replicação de banco de dados em todos os EUA, mas também reduziu o tempo que levaria para construir uma nova réplica pela metade. Agora, mesmo que o primário e a réplica estejam na mesma região, a eficiência operacional é aumentada drasticamente.

Resumo
O Instagram agora está operando em vários datacenters em todo os EUA, dando para eles capacidade de fazer um planejamento mais flexível, maior confiabilidade e melhor preparação para os desastres naturais como o que aconteceu em 2012. O Facebook testa regularmente seus datacenters, desligando eles em horário de pico. Cerca de um mês atrás, quando acabaram de migrar todos os dados para o novo datacenter, o Facebook fez um teste e o desligou. Foi uma simulação de alto risco, mas felizmente, eles sobreviveram a perda de capacidade sem que os usuários percebam. A Instagration Parte 2 foi um sucesso.

Lisa Guo, em tradução livre: http://engineering.instagram.com/posts/548723638608102/

Incorpore publicações do Facebook em seu site ou blog

Foto: Reprodução/Divulgação Facebook

O Facebook acaba de anunciar uma nova maneira de integrar sua plataforma a outros sites e blogs. Antes, já era possível incluir plugins que mostravam as últimas atualizações e permitiam que o visitante curtisse ou comentasse quando logado na rede social.

A nova funcionalidade chama-se publicações incorporadas, e vai permitir publicar posts do Facebook diretamente em seu site ou blog. Ao integrar seu site à rede social, você poderá incluir fotos, vídeos e hashtags, além do conteúdo escrito.

Os usuários que entrarem no site também poderão curtir e compartilhar o conteúdo integrado. Essa integração vai ser liberada aos poucos para os perfis e fanpages. Ela funcionará por meio de um botão chamado embed post. Ao clicar nesse botão, será gerado um código que deverá ser colado no HTML do site.

Essa funcionalidade, porém, só será permitida para as publicações públicas. Inclusive, essa é a intenção do Facebook com a novidade. A rede social pretende aumentar as publicações públicas, uma vez que uma pesquisa do Consumer Reports, publicada em junho de 2012, afirma que 72% dos usuários da rede publicam conteúdo apenas para os amigos. E se você tiver um blog, essa poderá ser uma opção muito útil para ser utilizada.

Enquanto a nova integração não é disponibilizada, que tal ir pensando em como aproveitá-la para gerar mais tráfego para seu site?

Aprenda a inserir o widget do Instagram no WordPress

Nossa dica hoje é simples, mas temos certeza que vai ajudar muita gente que usa o WordPress como plataforma para administrar sites e blogs. O Instagram é o aplicativo do momento quando o assunto é foto, e se o seu segmento tiver conta nele, você pode integrá-lo em seu site.

Os usuários não precisam nem mesmo adicionar um plugin para acrescentar uma galeria de fotos do Instagram, isso porque o próprio WordPress tem um widget que faz essa conexão.
Confira o passo a passo para incluir a galeria de fotos do Instagram em seu site:

1° passo: no painel do WordPress, clique no menu “Aparência” e, em seguida, escolha a opção “Widgets”.

instagram no wordpress

 

2° passo: procure por “Instagram” e arraste-o para a barra lateral, rodapé ou secundária. (A opção Instagram está mais ou menos no meio da lista)

instagram no wordpress

3° passo: clique em “AuthorizeInstagramAcess”. Em seguida, a página do Instagram será aberta e você precisará inserir nome de usuário e senha.

instagram no wordpress
4° passo: escolha o título da galeria na opção “WidleTitle”, como, por exemplo,“Nosso Instagram”. Em “Images” é possível escolher quantas fotos vão aparecer na galeria e na opção “Layout” você pode definir o número de colunas. Não esqueça de salvar quando terminar.

instagram no wordpress
Dessa forma a galeria do Instagram já estará aparecendo em seu site. Ao postar no aplicativo, automaticamente as últimas imagens vão aparecer na galeria, integrando ainda mais seus visitantes com as diversas plataformas nas quais você está presente!

E aí? Curtiu a dica? Experimente integrar seu WordPress com diversas redes sociais e gere mais tráfego para seu site!