;(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

Criminosos usam 'Last Of Us' como isca para aplicar golpes em fãs do jogo

Cena do jogo "The Last of Us"; recentemente, game virou série da HBO - Divulgação/Sony Interactive Entertainment
Cena do jogo 'The Last of Us'; recentemente, game virou série da HBO Imagem: Divulgação/Sony Interactive Entertainment

Ana Paula Coelho

Colaboração para Tilt, em Salvador

17/01/2023 11h37

A nova série da HBO, "The Last of Us", mal estreou e já surgiram novos golpes online utilizando a saga como isca. Baseado em jogo de Playstation, o título tem sido usado por cibercriminosos para oferecer uma versão fraudulenta do game para PC, que ainda não foi nem lançado, e ainda falsos códigos de ativação para o game.

O alerta foi feito pela empresa de segurança Kaspersky, que detectou um aumento de ocorrências de golpes envolvendo o game que, recentemente, virou série.

falso: alguns sites foram criados para o do game falso para PC que, na verdade, é um malware (um vírus) que coleta e rea dados pessoais para cibercriminosos.

Página falsa indicando  do jogo "The Last of Us" para PC; game só deve ser lançado para plataforma em março de 2023 - Reprodução/Kaspersky - Reprodução/Kaspersky
Página falsa indicando do jogo "The Last of Us" para PC; game só deve ser lançado para plataforma em março de 2023
Imagem: Reprodução/Kaspersky

Até o momento, o jogo é exclusivo para Playstation; a previsão é que seja lançado em março de 2023 uma versão do game para computador.

Um agravante deste malware, segundo a Kaspersky, é que ele "pode se esconder no computador sem ser detectado por um longo período". A empresa diz que a pessoa pode só descobrir a infecção quando "seus dados pessoais forem utilizados para fraudes".

Falso código de ativação. Sites falsos têm oferecido códigos de ativação para o jogo. Segundo a Kaspersky, ao baixar um arquivo com código, um convite surge para o usuário escolher brindes para vir com o jogo, como um novo console de Playstation 5 ou um Roblox Gift Card no valor de US$ 100, por exemplo.

Para dar continuidade ao processo, os usuários são instruídos a inserir dados bancários para pagar a taxa de comissão. As informações, no entanto, são enviadas diretamente para golpistas.

Como evitar cair em golpes

Para evitar cair neste tipo de golpe, a Kaspersky recomenda:

  • Busque verificar a autenticidade do conteúdo pesquisando on-line em lojas e sites oficiais. Links que prometem visualizações antecipadas de filmes ou séries de TV devem ser evitados;
  • Sempre verifique a autenticidade dos sites antes de inserir seus dados pessoais, de preferência, use páginas oficiais e confiáveis para assistir ou baixar filmes. Verifique novamente os formatos de URL e a ortografia do nome da empresa;
  • É importante sempre prestar muita atenção às extensões dos arquivos que você está baixando, isso vale para qualquer site. Um arquivo de vídeo nunca terá uma extensão .exe ou .msi., por exemplo;
  • Além desses cuidados, é importante buscar por soluções de cibersegurança que sejam confiáveis e que possam identificar anexos maliciosos e bloquear sites de phishing.