{"id":6380,"date":"2026-01-19T14:39:45","date_gmt":"2026-01-19T17:39:45","guid":{"rendered":"https:\/\/teo.com.br\/noticias\/?p=6380"},"modified":"2026-01-12T14:42:40","modified_gmt":"2026-01-12T17:42:40","slug":"alerta-de-seguranca-os-riscos-reais-de-inserir-javascript-de-terceiros-em-um-site","status":"publish","type":"post","link":"https:\/\/teo.com.br\/noticias\/2026\/01\/19\/alerta-de-seguranca-os-riscos-reais-de-inserir-javascript-de-terceiros-em-um-site\/","title":{"rendered":"ALERTA DE SEGURAN\u00c7A: OS RISCOS REAIS DE INSERIR JAVASCRIPT DE TERCEIROS EM UM SITE"},"content":{"rendered":"\n<p>Sou desenvolvedor de sites h\u00e1 mais de 20 anos e, se existe uma regra que o tempo ensina de forma dura, \u00e9 esta:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>QUALQUER DEMANDA PRECISA SER CONFIRMADA DIRETAMENTE COM O RESPONS\u00c1VEL PELO SITE. SEM EXCE\u00c7\u00c3O.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p>Essa pr\u00e1tica simples evita preju\u00edzos financeiros, vazamento de dados, penaliza\u00e7\u00f5es em SEO e at\u00e9 processos judiciais.<\/p>\n\n\n\n<p>Recentemente, vivi uma situa\u00e7\u00e3o que merece ser compartilhada como <strong>alerta t\u00e9cnico<\/strong> para toda a comunidade.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udce9 O CONTEXTO: UMA SOLICITA\u00c7\u00c3O \u201cINOFENSIVA\u201d<\/h2>\n\n\n\n<p>Recebi um e-mail solicitando a inclus\u00e3o de um \u201csimples recurso de troca de idioma\u201d no site de um cliente. O discurso era profissional, bem escrito, com assinatura, telefone brasileiro, dom\u00ednio pr\u00f3prio e at\u00e9 refer\u00eancia a uma empresa \u201cparceira\u201d.<\/p>\n\n\n\n<p>Antes de qualquer a\u00e7\u00e3o, fiz o que sempre fa\u00e7o:<\/p>\n\n\n\n<p>\ud83d\udc49 <strong>Confirmei diretamente com o propriet\u00e1rio do site.<\/strong><\/p>\n\n\n\n<p>Resposta do cliente?<br>\u274c <strong>N\u00e3o solicitou absolutamente nada.<\/strong><\/p>\n\n\n\n<p>Aqui j\u00e1 temos o primeiro sinal cl\u00e1ssico de alerta.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf A ESTRAT\u00c9GIA USADA: ENGENHARIA SOCIAL<\/h2>\n\n\n\n<p>O e-mail seguia um padr\u00e3o muito conhecido em ataques modernos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Linguagem educada e t\u00e9cnica<\/li>\n\n\n\n<li>Nome de pessoa real<\/li>\n\n\n\n<li>Dom\u00ednio aparentemente leg\u00edtimo<\/li>\n\n\n\n<li>Pedido simples e \u201cr\u00e1pido\u201d<\/li>\n\n\n\n<li>C\u00f3digo pronto para copiar e colar<\/li>\n\n\n\n<li>Urg\u00eancia impl\u00edcita (\u201c\u00e9 s\u00f3 integrar\u201d)<\/li>\n<\/ul>\n\n\n\n<p>Esse tipo de abordagem explora <strong>confian\u00e7a<\/strong>, <strong>rotina<\/strong> e <strong>pressa<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udde9 O PROBLEMA REAL: JAVASCRIPT DE TERCEIROS N\u00c3O CONFI\u00c1VEIS<\/h2>\n\n\n\n<p>O pedido era para inserir os seguintes elementos no site:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Scripts externos carregados no <code>&lt;head><\/code><\/li>\n\n\n\n<li>C\u00f3digo JavaScript remoto<\/li>\n\n\n\n<li>Um <code>div<\/code> que inicializa um widget din\u00e2mico<\/li>\n\n\n\n<li>Depend\u00eancia total de servidores externos<\/li>\n<\/ul>\n\n\n\n<p>\u00c0 primeira vista, parece apenas um <strong>widget de tradu\u00e7\u00e3o<\/strong>.<\/p>\n\n\n\n<p>Na pr\u00e1tica, <strong>\u00e9 uma execu\u00e7\u00e3o remota de c\u00f3digo JavaScript dentro do seu site<\/strong>.<\/p>\n\n\n\n<p>E aqui come\u00e7a o risco real.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udea8 POR QUE JAVASCRIPT \u00c9 EXTREMAMENTE PERIGOSO QUANDO MAL UTILIZADO?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">JavaScript tem <strong>controle total do navegador<\/strong><\/h3>\n\n\n\n<p>Um script externo pode:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ler e manipular todo o DOM<\/li>\n\n\n\n<li>Capturar dados de formul\u00e1rios<\/li>\n\n\n\n<li>Interceptar logins e senhas<\/li>\n\n\n\n<li>Ler cookies (inclusive de sess\u00e3o)<\/li>\n\n\n\n<li>Executar redirecionamentos invis\u00edveis<\/li>\n\n\n\n<li>Injetar an\u00fancios ou links maliciosos<\/li>\n\n\n\n<li>Carregar outros scripts dinamicamente<\/li>\n\n\n\n<li>Alterar conte\u00fado sem voc\u00ea perceber<\/li>\n<\/ul>\n\n\n\n<p>Tudo isso <strong>sem deixar rastros vis\u00edveis no servidor<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd25 RISCOS REAIS ASSOCIADOS A ESSE TIPO DE SCRIPT<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1\ufe0f\u20e3 Roubo de dados (Data Harvesting)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dados de formul\u00e1rios<\/li>\n\n\n\n<li>E-mails<\/li>\n\n\n\n<li>Telefones<\/li>\n\n\n\n<li>Tokens de autentica\u00e7\u00e3o<\/li>\n\n\n\n<li>Cookies de login<\/li>\n\n\n\n<li>Dados de pagamento (em casos mais graves)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">2\ufe0f\u20e3 Sequestro de sess\u00f5es (Session Hijacking)<\/h3>\n\n\n\n<p>O script pode capturar cookies de sess\u00e3o e permitir que terceiros <strong>assumam contas administrativas<\/strong>, inclusive do WordPress.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">3\ufe0f\u20e3 Redirecionamento malicioso<\/h3>\n\n\n\n<p>Visitantes podem ser redirecionados para:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sites de phishing<\/li>\n\n\n\n<li>P\u00e1ginas falsas<\/li>\n\n\n\n<li>Downloads infectados<\/li>\n\n\n\n<li>Golpes financeiros<\/li>\n<\/ul>\n\n\n\n<p>Muitas vezes isso ocorre <strong>apenas em mobile ou apenas para Googlebot<\/strong>, dificultando a detec\u00e7\u00e3o.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">4\ufe0f\u20e3 Penaliza\u00e7\u00e3o severa no Google (SEO)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Blacklist do Google Safe Browsing<\/li>\n\n\n\n<li>Aviso de \u201csite perigoso\u201d<\/li>\n\n\n\n<li>Queda brusca de tr\u00e1fego<\/li>\n\n\n\n<li>Desindexa\u00e7\u00e3o completa<\/li>\n\n\n\n<li>Perda de autoridade do dom\u00ednio<\/li>\n<\/ul>\n\n\n\n<p>Recuperar isso pode levar <strong>meses<\/strong> \u2014 ou nunca acontecer.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">5\ufe0f\u20e3 Ataque de Supply Chain<\/h3>\n\n\n\n<p>Mesmo que o script seja \u201cleg\u00edtimo hoje\u201d:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>O dom\u00ednio pode ser comprometido amanh\u00e3<\/li>\n\n\n\n<li>O arquivo JS pode ser alterado<\/li>\n\n\n\n<li>O CDN pode ser invadido<\/li>\n\n\n\n<li>O parceiro pode vender a empresa<\/li>\n<\/ul>\n\n\n\n<p>Voc\u00ea <strong>n\u00e3o controla<\/strong> o c\u00f3digo remoto.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd0e A INVESTIGA\u00c7\u00c3O<\/h2>\n\n\n\n<p>Ao pesquisar os dom\u00ednios envolvidos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u274c Cliente nunca ouviu falar da empresa<\/li>\n\n\n\n<li>\u274c Nenhuma reputa\u00e7\u00e3o s\u00f3lida encontrada<\/li>\n\n\n\n<li>\u274c Pouca ou nenhuma presen\u00e7a confi\u00e1vel na internet<\/li>\n\n\n\n<li>\u274c Dom\u00ednios sem hist\u00f3rico claro<\/li>\n\n\n\n<li>\u274c Documenta\u00e7\u00e3o gen\u00e9rica<\/li>\n\n\n\n<li>\u274c C\u00f3digo ofuscado e remoto<\/li>\n<\/ul>\n\n\n\n<p>Isso, somado ao fato de o cliente <strong>n\u00e3o ter solicitado nada<\/strong>, \u00e9 motivo mais do que suficiente para <strong>bloquear qualquer implementa\u00e7\u00e3o<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u26a0\ufe0f DOM\u00cdNIOS QUE MERECEM ATEN\u00c7\u00c3O E CAUTELA<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>CUIDADO \u2013 ALERTA DE SEGURAN\u00c7A<\/strong><\/p>\n<\/blockquote>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>www.hotelwidgets.com<\/code><\/li>\n\n\n\n<li><code>hotelsreputation.com<\/code><\/li>\n\n\n\n<li><code>elfsight.com<\/code> \/ <code>elfsignt.com<\/code> (varia\u00e7\u00f5es semelhantes)<\/li>\n\n\n\n<li>Scripts hospedados em CDNs de terceiros sem auditoria<\/li>\n<\/ul>\n\n\n\n<p>\u26a0\ufe0f <strong>Isso n\u00e3o \u00e9 uma acusa\u00e7\u00e3o criminal<\/strong>, mas um <strong>alerta t\u00e9cnico de risco<\/strong> baseado em boas pr\u00e1ticas de seguran\u00e7a.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 BOAS PR\u00c1TICAS OBRIGAT\u00d3RIAS PARA DESENVOLVEDORES<\/h2>\n\n\n\n<p>\u2714\ufe0f Nunca inserir c\u00f3digo sem autoriza\u00e7\u00e3o formal do cliente<br>\u2714\ufe0f Nunca confiar apenas em e-mail<br>\u2714\ufe0f Verificar reputa\u00e7\u00e3o, hist\u00f3rico e CNPJ da empresa<br>\u2714\ufe0f Evitar scripts externos sempre que poss\u00edvel<br>\u2714\ufe0f Preferir solu\u00e7\u00f5es self-hosted<br>\u2714\ufe0f Usar Content Security Policy (CSP)<br>\u2714\ufe0f Monitorar altera\u00e7\u00f5es no DOM<br>\u2714\ufe0f Versionar tudo<br>\u2714\ufe0f Manter backups atualizados<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udde0 FINALIZANDO<\/h2>\n\n\n\n<p>O pedido parecia simples.<br>O risco era enorme.<\/p>\n\n\n\n<p><strong>JavaScript \u00e9 poderoso. E exatamente por isso \u00e9 perigoso quando vem de fontes n\u00e3o confi\u00e1veis.<\/strong><\/p>\n\n\n\n<p>Se voc\u00ea \u00e9 desenvolvedor, ag\u00eancia ou gestor de site, lembre-se:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Quem controla o JavaScript, controla o site.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p>Desconfie. Verifique. Confirme.<br>E, acima de tudo, <strong>proteja seu cliente e sua reputa\u00e7\u00e3o<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sou desenvolvedor de sites h\u00e1 mais de 20 anos e, se existe uma regra que o tempo ensina de forma dura, \u00e9 esta: QUALQUER DEMANDA PRECISA SER CONFIRMADA DIRETAMENTE COM&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[369],"tags":[470,471,469,468,208],"class_list":["post-6380","post","type-post","status-publish","format-standard","hentry","category-incendio","tag-elfsignt","tag-email","tag-hotelsreputation","tag-hotelwidgets","tag-seguranca"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/teo.com.br\/noticias\/wp-json\/wp\/v2\/posts\/6380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/teo.com.br\/noticias\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/teo.com.br\/noticias\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/teo.com.br\/noticias\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/teo.com.br\/noticias\/wp-json\/wp\/v2\/comments?post=6380"}],"version-history":[{"count":1,"href":"https:\/\/teo.com.br\/noticias\/wp-json\/wp\/v2\/posts\/6380\/revisions"}],"predecessor-version":[{"id":6381,"href":"https:\/\/teo.com.br\/noticias\/wp-json\/wp\/v2\/posts\/6380\/revisions\/6381"}],"wp:attachment":[{"href":"https:\/\/teo.com.br\/noticias\/wp-json\/wp\/v2\/media?parent=6380"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/teo.com.br\/noticias\/wp-json\/wp\/v2\/categories?post=6380"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/teo.com.br\/noticias\/wp-json\/wp\/v2\/tags?post=6380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}