;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

O que é VPN? Veja como usar o serviço para navegar rápido e anonimamente

Getty Images
Imagem: Getty Images

Rodrigo Lara

Colaboração para Tilt, em São Paulo

21/01/2022 04h00

A essa altura você já deve ter percebido que nossos dados am longe de ser realmente privados. Já listamos cinco maneiras simples de reduzir os rastros na internet, mas se você quer mesmo navegar mais anonimamente deve prestar atenção a um ponto: o uso de VPNs (sigla em inglês para redes privadas virtuais).

Em 2016, quando o WhatsApp foi bloqueado, muita gente baixou apps gratuitos para usar VPNs públicas que faziam o mensageiros voltar a funcionar. Isso não acabou bem: da mesma forma que há VPNs seguras, há redes que são extremamente vulneráveis e te deixam vulnerável a todo tipo de mazela digital, de invasões a roubo de dados.

Ou seja, é um recurso muito útil, mas que requer cuidados.

O que é VPN?

As VPNs (Virtual Private Network) criam um canal direto entre um ponto de o (no caso, um computador) e o endereço de destino (um site ou um banco de dados, por exemplo), por isso foram primeiramente adotadas pelas empresas que buscavam as redes corporativas e seguras.

A conexão deixa de ser pública —ando por servidores de operadoras de internet ou de empresas como o Google— e se tornam privada, usando servidores da empresa de VPN contratada.

Quando países como a China aram a barrar o o a sites da internet, muitas pessoas adotaram a ferramenta para burlas as proibições. Para esse tipo de uso, a VPN guia a conexão do usuário por caminhos diferentes, de forma a chegar de um ponto a outro.

Seria como tentar ir do ponto "A" ao ponto "Z" de carro, mas a estrada que liga diretamente esses dois pontos está bloqueada. Então você utiliza outras vias, a por outros pontos e "dribla" o bloqueio da estrada principal.

Evite VPNs gratuitas

No caso das VPNs gratuitas, o problema é que esses outros pontos por onde am os dados de sua conexão costumam ser bem vulneráveis. Os pontos intermediários do trajeto podem servir para roubar dados, por exemplo, diz o especialista em infraestrutura de redes Jefferson Castanheira.

Ele conta que criar uma VPN é algo de baixo custo e, por isso, pode também ser um recurso usado por criminosos.

"VPNs 'de garagem' nunca serão seguras. É o caso daqueles apps gratuitos que vemos nas lojas virtuais dos celulares, como Google Play e AppStore", explica.

Ou seja: se você pretende utilizar uma VPN, fique longe de alternativas gratuitas.

Nem toda VPN é insegura

Os serviços pagos de VPN costumam ser bem seguros. Além de guardarem seus dados, eles garantem uma velocidade de conexão superior à obtida quando se utiliza a internet de maneira convencional.

Outra vantagem é que eles eliminam suas pegadas de navegação. Não chega a ser um uso totalmente anônimo, mas seus dados são criptografados e seu IP real fica escondido. Então, os sites não conseguem te identificar ou rastrear seu comportamento.

O ponto negativo é o preço, especialmente quando o serviço é cobrado em dólar.

"Criar uma VPN segura, de qualidade e ótimo tráfego, sai caro", ressalta Castanheira.

"É importante pesquisar sobre quem fornece o serviço: é uma empresa de qualidade reconhecida? De onde vem suas conexões? Possui certificados de segurança?", diz o especialista.

Outro ponto para ficar esperto é se há franquia de tráfego de dados. O ideal é ter um que permita navegação ilimitada.

Como usar a VPN

Uma vez contratado o plano, o método mais comum para ar esse tipo de rede envolve baixar e instalar um aplicativo fornecido pela empresa responsável pelo serviço.

Esse programa, em geral, precisará ser aberto e pedirá um .

Preenchidas as informações e escolhido o servidor que será usado, a navegação a a ser privada e você usa os navegadores e programas que já está acostumado da forma como fazia antes.

É ilegal?

Os serviços de VPN, em si, não são ilegais. Mas dependendo do tipo de uso, você pode cometer infrações. Por exemplo, ar conteúdos que são proibidos no Brasil, via plataformas de streaming, pode ser suficiente para haver consequências jurídicas.

Segundo Cristina Sleiman, advogada especialista em direito digital, esses arquivos fazem parte de um modelo de negócio cujo licenciamento geralmente é feito individualmente para cada localidade.

Em seus termos de uso, a versão brasileira do Netflix diz: "Você pode assistir a um filme ou série de TV pelo serviço Netflix somente nas áreas geográficas em que oferecemos serviço e em que licenciamos aquele filme ou aquela série. O conteúdo disponível para assistir variará de acordo com a localização geográfica".

A empresa se reserva ao direito de encerrar ou restringir o o ao serviço se um dos termos for violado.

O mesmo acontece com o Spotify. "Podemos encerrar ou restringir seu uso do serviço sem remuneração ou notificação se houver suspeita de violação de termos de uso ou envolvimento com uso ilegal ou inadequado", informa o documento sobre os direitos e obrigações do usuário do serviço de música. (Colaborou Guilherme Tagiaroli)