2 lines
20 KiB
JavaScript
2 lines
20 KiB
JavaScript
import{y as I,K as g,J as e,L as w,A as Z,o as ee,a as k,T as ae}from"./index-DLMsdH5y.js";import{C as R}from"./circle-check-big-BcmvPvF4.js";const se=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],oe=I("circle-x",se);const te=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],re=I("info",te),P=a=>`avanzato-tools-count-${a}`,ce="avanzato-tools-cadastro",le=({nome:a,descricao:m,icone:c,placeholder:t,explicacao:n,comoFunciona:l,perguntasUteis:o,onConsultar:i})=>{const[d,u]=g.useState(""),[s,p]=g.useState(null),[x,y]=g.useState(!1),[C,S]=g.useState(""),[O,h]=g.useState(!1),[b,F]=g.useState(!1),[v,K]=g.useState(()=>{const r=window.location.pathname.split("/").pop()||"";return parseInt(localStorage.getItem(P(r))||"0",10)}),[M,$]=g.useState(null),[X,V]=g.useState(""),[z,_]=g.useState(!1),[N,G]=g.useState(""),[D,U]=g.useState(""),B=window.location.pathname.split("/").pop()||"",H=()=>!!(b||v<2),A=async()=>{if(!d.trim()){S("Digite um dominio valido (ex: avanzato.com.br)");return}if(!H()){h(!0);return}S(""),y(!0),p(null);try{const r=await i(d.trim());p(r);const f=v+1;K(f),localStorage.setItem(P(B),String(f)),f>=2&&!b&&setTimeout(()=>_(!0),2e3)}catch{S("Erro ao consultar. Verifique o dominio e tente novamente.")}finally{y(!1)}},Q=r=>{r.preventDefault(),F(!0),localStorage.setItem(ce,"true"),h(!1)},W=r=>{switch(r){case"success":return e.jsx(R,{className:"w-8 h-8 text-green-400"});case"warning":return e.jsx(ae,{className:"w-8 h-8 text-yellow-400"});case"error":return e.jsx(oe,{className:"w-8 h-8 text-red-400"});default:return e.jsx(re,{className:"w-8 h-8 text-blue-400"})}},J=["Seguranca da informacao","Backup","Microsoft 365","Firewall","Servidores","Lentidao da rede","VPN / Home Office","Suporte aos usuarios","Custos de TI","LGPD","Ransomware","Outro"],Y=["Apenas pesquisando","Quero melhorar nos proximos meses","Preciso resolver este mes","Preciso resolver imediatamente"];return e.jsxs("div",{className:"max-w-4xl mx-auto",children:[e.jsxs("div",{className:"mb-8",children:[e.jsxs(w,{to:"/ferramentas",className:"inline-flex items-center gap-2 text-gray-400 hover:text-[#cbf400] transition-colors mb-4",children:[e.jsx(Z,{className:"w-4 h-4"}),"Todas as ferramentas"]}),e.jsxs("div",{className:"flex items-center gap-4 mb-4",children:[e.jsx("div",{className:"p-3 bg-[#cbf400]/10 rounded-xl text-[#cbf400]",children:c}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold text-white",children:a}),e.jsx("p",{className:"text-gray-300",children:m})]})]})]}),e.jsxs("div",{className:"bg-[#1a1a1a] rounded-2xl p-6 border border-[#2a2a2a] mb-8",children:[e.jsxs("div",{className:"flex gap-4",children:[e.jsx("input",{type:"text",value:d,onChange:r=>u(r.target.value),onKeyDown:r=>r.key==="Enter"&&A(),placeholder:t,className:"flex-1 bg-[#0e0e0e] border border-[#2a2a2a] rounded-xl px-4 py-3 text-white placeholder-gray-500 focus:border-[#cbf400] focus:outline-none"}),e.jsxs("button",{onClick:A,disabled:x,className:"bg-[#cbf400] text-[#0e0e0e] px-6 py-3 rounded-xl font-semibold hover:bg-[#b8e000] transition-colors disabled:opacity-50 flex items-center gap-2",children:[x&&e.jsx(ee,{className:"w-4 h-4 animate-spin"}),x?"Analisando...":"Verificar"]})]}),C&&e.jsx("p",{className:"text-red-400 mt-3 text-sm",children:C}),!b&&v>=2&&e.jsxs("p",{className:"text-yellow-400 mt-3 text-sm",children:["Voce usou ",v," consultas. ",e.jsx("button",{onClick:()=>h(!0),className:"underline hover:text-[#cbf400]",children:"Cadastre-se gratuitamente"})," para consultas ilimitadas."]})]}),s&&e.jsxs("div",{className:`bg-[#1a1a1a] rounded-2xl p-6 border mb-8 ${s.status==="success"?"border-green-500/30":s.status==="warning"?"border-yellow-500/30":s.status==="error"?"border-red-500/30":"border-blue-500/30"}`,children:[e.jsxs("div",{className:"flex items-center gap-4 mb-4",children:[W(s.status),e.jsxs("div",{children:[e.jsx("h2",{className:"text-xl font-semibold text-white",children:s.titulo}),s.score!==void 0&&e.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[e.jsx("div",{className:"w-32 h-2 bg-gray-700 rounded-full overflow-hidden",children:e.jsx("div",{className:`h-full rounded-full ${s.score>=80?"bg-green-400":s.score>=50?"bg-yellow-400":"bg-red-400"}`,style:{width:`${s.score}%`}})}),e.jsxs("span",{className:"text-sm font-medium text-white",children:[s.score,"/100"]})]})]})]}),e.jsx("p",{className:"text-gray-300 mb-4",children:s.mensagem}),s.detalhes&&Object.entries(s.detalhes).length>0&&e.jsx("div",{className:"bg-[#0e0e0e] rounded-xl p-4 mb-4",children:Object.entries(s.detalhes).map(([r,f])=>e.jsxs("div",{className:"flex justify-between py-2 border-b border-[#2a2a2a] last:border-0",children:[e.jsx("span",{className:"text-gray-400",children:r}),e.jsx("span",{className:"text-white font-mono text-sm",children:f})]},r))}),s.recomendacoes&&s.recomendacoes.length>0&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-[#cbf400] mb-2",children:"Recomendacoes"}),e.jsx("ul",{className:"space-y-2",children:s.recomendacoes.map((r,f)=>e.jsxs("li",{className:"flex items-start gap-2 text-gray-300 text-sm",children:[e.jsx(R,{className:"w-4 h-4 text-[#cbf400] mt-0.5 shrink-0"}),r]},f))})]})]}),O&&!b&&e.jsxs("div",{className:"bg-[#1a1a1a] rounded-2xl p-6 border border-[#cbf400]/30 mb-8",children:[e.jsx("h2",{className:"text-xl font-semibold text-white mb-2",children:"Cadastro Rapido Gratuito"}),e.jsx("p",{className:"text-gray-300 text-sm mb-4",children:"Voce ja usou 2 consultas gratuitas. Cadastre-se para consultas ilimitadas e relatorios completos."}),e.jsxs("form",{onSubmit:Q,className:"space-y-3",children:[e.jsx("input",{type:"text",placeholder:"Nome",required:!0,className:"w-full bg-[#0e0e0e] border border-[#2a2a2a] rounded-xl px-4 py-3 text-white placeholder-gray-500 focus:border-[#cbf400] focus:outline-none"}),e.jsx("input",{type:"email",placeholder:"E-mail corporativo",required:!0,className:"w-full bg-[#0e0e0e] border border-[#2a2a2a] rounded-xl px-4 py-3 text-white placeholder-gray-500 focus:border-[#cbf400] focus:outline-none"}),e.jsx("input",{type:"text",placeholder:"Empresa",required:!0,className:"w-full bg-[#0e0e0e] border border-[#2a2a2a] rounded-xl px-4 py-3 text-white placeholder-gray-500 focus:border-[#cbf400] focus:outline-none"}),e.jsx("p",{className:"text-gray-500 text-xs",children:"Autorizo a Avanzato Tecnologia a enviar conteudos tecnicos, diagnosticos e informacoes sobre solucoes de TI, seguranca e Microsoft 365."}),e.jsx("button",{type:"submit",className:"bg-[#cbf400] text-[#0e0e0e] px-6 py-3 rounded-xl font-semibold hover:bg-[#b8e000] transition-colors",children:"Cadastrar e Continuar"})]})]}),z&&!b&&e.jsxs("div",{className:"bg-[#1a1a1a] rounded-2xl p-6 border border-yellow-500/30 mb-8",children:[e.jsx("h2",{className:"text-lg font-semibold text-white mb-4",children:"Qual e hoje sua maior dor em TI?"}),e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-2 mb-4",children:J.map(r=>e.jsx("button",{onClick:()=>G(r),className:`p-2 rounded-lg text-sm transition-colors ${N===r?"bg-[#cbf400] text-[#0e0e0e]":"bg-[#0e0e0e] text-gray-300 hover:bg-[#2a2a2a]"}`,children:r},r))}),N&&e.jsxs("div",{className:"mt-4",children:[e.jsx("h3",{className:"text-sm font-semibold text-white mb-2",children:"Qual a urgencia?"}),e.jsx("div",{className:"flex flex-wrap gap-2 mb-4",children:Y.map(r=>e.jsx("button",{onClick:()=>U(r),className:`px-3 py-2 rounded-lg text-sm transition-colors ${D===r?"bg-[#cbf400] text-[#0e0e0e]":"bg-[#0e0e0e] text-gray-300 hover:bg-[#2a2a2a]"}`,children:r},r))})]}),N&&D&&e.jsxs("div",{className:"flex gap-4 mt-4",children:[e.jsxs(w,{to:"/avaliacao",className:"bg-[#cbf400] text-[#0e0e0e] px-6 py-3 rounded-xl font-semibold hover:bg-[#b8e000] transition-colors inline-flex items-center gap-2",children:["Solicitar Avaliacao Gratuita ",e.jsx(k,{className:"w-4 h-4"})]}),e.jsx("button",{onClick:()=>h(!0),className:"border border-[#cbf400] text-[#cbf400] px-6 py-3 rounded-xl font-semibold hover:bg-[#cbf400]/10 transition-colors",children:"Cadastrar para Relatorio Completo"})]})]}),s&&e.jsxs("div",{className:"bg-[#1a1a1a] rounded-2xl p-6 border border-[#2a2a2a] mb-8",children:[e.jsx("h3",{className:"text-lg font-semibold text-white mb-3",children:"Esta ferramenta foi util?"}),M===null?e.jsxs("div",{className:"flex gap-4",children:[e.jsx("button",{onClick:()=>$("sim"),className:"bg-green-500/20 text-green-400 px-6 py-2 rounded-lg hover:bg-green-500/30 transition-colors",children:"Sim, foi util"}),e.jsx("button",{onClick:()=>$("nao"),className:"bg-red-500/20 text-red-400 px-6 py-2 rounded-lg hover:bg-red-500/30 transition-colors",children:"Nao, faltou algo"})]}):M==="sim"?e.jsxs("div",{children:[e.jsx("p",{className:"text-green-400 mb-4",children:"Que otimo! A Avanzato investe em ferramentas gratuitas para ajudar empresas a proteger sua infraestrutura de TI."}),e.jsxs("div",{className:"flex flex-wrap gap-3",children:[e.jsxs(w,{to:"/avaliacao",className:"bg-[#cbf400] text-[#0e0e0e] px-4 py-2 rounded-lg font-medium hover:bg-[#b8e000] transition-colors inline-flex items-center gap-2",children:["Solicitar Avaliacao Gratuita ",e.jsx(k,{className:"w-4 h-4"})]}),e.jsx("button",{onClick:()=>h(!0),className:"border border-[#cbf400] text-[#cbf400] px-4 py-2 rounded-lg hover:bg-[#cbf400]/10 transition-colors",children:"Receber Relatorio Completo"})]})]}):e.jsxs("div",{children:[e.jsx("p",{className:"text-gray-300 mb-2",children:"O que faltou ou o que podemos melhorar?"}),e.jsx("textarea",{value:X,onChange:r=>V(r.target.value),className:"w-full bg-[#0e0e0e] border border-[#2a2a2a] rounded-xl px-4 py-3 text-white placeholder-gray-500 focus:border-[#cbf400] focus:outline-none h-24",placeholder:"Conte-nos como podemos melhorar..."})]})]}),e.jsxs("div",{className:"bg-[#1a1a1a] rounded-2xl p-6 border border-[#2a2a2a] mb-8",children:[e.jsxs("h2",{className:"text-xl font-semibold text-white mb-4",children:["O que e ",a.split(" ")[0],"?"]}),e.jsx("p",{className:"text-gray-300 mb-6",children:n}),e.jsx("h3",{className:"text-lg font-semibold text-white mb-3",children:"Como funciona"}),e.jsx("ol",{className:"space-y-2 mb-6",children:l.map((r,f)=>e.jsxs("li",{className:"flex items-start gap-3 text-gray-300",children:[e.jsx("span",{className:"w-6 h-6 bg-[#cbf400]/20 text-[#cbf400] rounded-full flex items-center justify-center text-sm font-medium shrink-0",children:f+1}),r]},f))})]}),o.length>0&&e.jsxs("div",{className:"bg-[#1a1a1a] rounded-2xl p-6 border border-[#2a2a2a] mb-8",children:[e.jsxs("h2",{className:"text-xl font-semibold text-white mb-4",children:["Perguntas Frequentes sobre ",a.split(" ")[0]]}),e.jsx("div",{className:"space-y-4",children:o.map((r,f)=>e.jsxs("div",{className:"border-b border-[#2a2a2a] pb-4 last:border-0",children:[e.jsx("h3",{className:"text-[#cbf400] font-medium mb-1",children:r.q}),e.jsx("p",{className:"text-gray-300 text-sm",children:r.a})]},f))})]})]})};async function j(a,m){try{return await(await fetch(`https://dns.google/resolve?name=${encodeURIComponent(a)}&type=${m}`)).json()}catch{return{Status:2,Answer:[]}}}async function E(a){const c=((await j(a,"TXT")).Answer||[]).filter(x=>x.data&&x.data.includes("v=spf1"));if(c.length===0)return{status:"error",titulo:"SPF Nao Encontrado",mensagem:`O dominio ${a} nao possui um registro SPF configurado. Sem SPF, qualquer pessoa pode enviar e-mails em nome do seu dominio, o que facilita ataques de phishing e spoofing.`,detalhes:{Dominio:a,Registro:"Nao encontrado"},recomendacoes:["Crie um registro TXT no DNS com a politica SPF","Exemplo: v=spf1 include:_spf.google.com ~all (para Microsoft 365/Google Workspace)","Use o mecanismo ~all (softfail) inicialmente para testes","Monitore os logs antes de usar -all (hardfail)","Consulte a Avanzato para configuracao personalizada"],score:0};const t=c[0].data.replace(/"/g,""),n=t.includes("-all")||t.includes("~all")||t.includes("?all"),l=t.includes("-all"),o=t.match(/include:[^\s]+/g)||[],i=t.match(/ip4:[^\s]+/g)||[],d=t.match(/ip6:[^\s]+/g)||[];let u="warning",s=60,p=[];return l?(u="success",s=90):t.includes("~all")?(u="warning",s=70,p.push("Considere mudar ~all para -all para protecao mais forte")):n||(u="error",s=30,p.push("Adicione ~all ou -all ao final do seu SPF")),o.length>10&&(s-=20,p.push("Voce tem muitos includes. Mais de 10 lookups pode quebrar o SPF")),{status:u,titulo:u==="success"?"SPF Configurado Corretamente":"SPF Configurado com Ressalvas",mensagem:`O dominio ${a} possui um registro SPF ${l?"com protecao rigida (-all)":n?"mas sem protecao rigida":"mas sem mecanismo de falha"}.`,detalhes:{Dominio:a,Registro:t.substring(0,100),Mecanismo:l?"-all (hardfail)":t.includes("~all")?"~all (softfail)":"Sem all",Includes:String(o.length),"IPs v4":String(i.length),"IPs v6":String(d.length)},recomendacoes:p.length>0?p:["Seu SPF esta bem configurado!","Monitore regularmente para garantir que todos os servidores legitimos estejam incluidos"],score:s}}async function T(a){const m=["default","google","selector1","selector2","mail","dkim"];let c=!1,t="",n="";for(const l of m){const o=await j(`${l}._domainkey.${a}`,"TXT");if(o.Answer&&o.Answer.length>0){const i=o.Answer[0].data;if(i.includes("v=DKIM1")||i.includes("k=rsa")){c=!0,t=l,n=i.replace(/"/g,"").substring(0,80);break}}}return c?{status:"success",titulo:"DKIM Configurado",mensagem:`DKIM encontrado com o selector "${t}". Seu dominio possui assinatura digital para autenticacao de e-mails.`,detalhes:{Dominio:a,Selector:t,Registro:n+"..."},recomendacoes:["DKIM esta configurado corretamente!","Certifique-se de que todos os servidores de e-mail assinam com DKIM","Renove as chaves DKIM periodicamente"],score:85}:{status:"warning",titulo:"DKIM Nao Encontrado",mensagem:`Nao foi possivel encontrar um registro DKIM valido para ${a} com os selectors comuns. Isso nao significa que nao existe, mas pode indicar que nao esta configurado ou usa um selector personalizado.`,detalhes:{Dominio:a,"Selectors testados":m.join(", ")},recomendacoes:["Verifique qual selector seu servidor de e-mail usa","Para Microsoft 365: selector1 e selector2","Para Google Workspace: google","Entre em contato com seu administrador de e-mail","A Avanzato pode configurar DKIM para seu dominio"],score:30}}async function q(a){const c=((await j(`_dmarc.${a}`,"TXT")).Answer||[]).filter(d=>d.data&&d.data.includes("v=DMARC1"));if(c.length===0)return{status:"error",titulo:"DMARC Nao Encontrado",mensagem:`O dominio ${a} nao possui DMARC configurado. Sem DMARC, voce nao recebe relatorios sobre falhas de autenticacao e nao pode instruir provedores a rejeitar e-mails falsos.`,detalhes:{Dominio:a,Registro:"Nao encontrado"},recomendacoes:["Crie um registro TXT em _dmarc.seudominio.com","Exemplo: v=DMARC1; p=quarantine; rua=mailto:dmarc@seudominio.com","Comece com p=none para monitorar, depois mude para quarantine ou reject","Configure rua para receber relatorios agregados","Consulte a Avanzato para configuracao completa"],score:0};const t=c[0].data.replace(/"/g,""),n=t.match(/p=(\w+)/)?.[1]||"none",l=t.match(/rua=([^;]+)/)?.[1]||"Nao configurado";let o="warning",i=50;return n==="reject"?(o="success",i=100):n==="quarantine"?(o="warning",i=75):(o="error",i=40),{status:o,titulo:n==="reject"?"DMARC com Protecao Maxima":"DMARC Configurado",mensagem:`DMARC encontrado com politica "${n}". ${n==="reject"?"E-mails que falham na autenticacao serao rejeitados.":n==="quarantine"?"E-mails suspeitos vao para spam.":"Apenas monitorando, sem acao sobre e-mails falsos."}`,detalhes:{Dominio:a,Politica:n,"Relatorios (rua)":l,Registro:t.substring(0,80)+"..."},recomendacoes:n==="reject"?["Excelente! Sua protecao DMARC esta no nivel maximo"]:[`Considere mudar p=${n} para p=reject para protecao total`,"Monitore os relatorios rua antes de mudar para reject"],score:i}}async function L(a){const c=((await j(a,"MX")).Answer||[]).sort((i,d)=>i.preference-d.preference);if(c.length===0)return{status:"error",titulo:"Registros MX Nao Encontrados",mensagem:`O dominio ${a} nao possui registros MX. Sem MX, o dominio nao pode receber e-mails.`,detalhes:{Dominio:a,Status:"Sem MX"},recomendacoes:["Configure registros MX no DNS do seu dominio","Para Microsoft 365: siga o assistente de configuracao","Para Google Workspace: adicione os MX do Google"],score:0};const t=c.map(i=>i.data).join(", "),n=t.toLowerCase().includes("microsoft")||t.toLowerCase().includes("outlook")||t.toLowerCase().includes("protection"),l=t.toLowerCase().includes("google")||t.toLowerCase().includes("aspmx"),o=n?"Microsoft 365 / Exchange Online":l?"Google Workspace":"Outro / Servidor Proprio";return{status:"success",titulo:`${c.length} Servidor(es) MX Encontrado(s)`,mensagem:`O dominio ${a} esta configurado para receber e-mails via ${o}.`,detalhes:{Dominio:a,"Servidores MX":String(c.length),Provedor:o,"Prioridade mais alta":c[0].data},recomendacoes:["Sua infraestrutura de e-mail esta configurada",`Voce esta usando: ${o}`,"Mantenha pelo menos 2 servidores MX para redundancia"],score:90}}async function de(a){try{const c=await(await fetch(`https://crt.sh/?q=${encodeURIComponent(a)}&output=json`)).json();if(!c||c.length===0)return{status:"warning",titulo:"Certificado SSL Nao Encontrado",mensagem:`Nao foi possivel encontrar informacoes de certificado SSL para ${a} no banco de dados publico. Isso pode significar que o site nao usa HTTPS ou o certificado nao e publico.`,score:30};const t=c[0],n=t.issuer_name||"Desconhecido",l=t.not_after?new Date(t.not_after):null,o=l?Math.floor((l.getTime()-Date.now())/(1e3*60*60*24)):0,i=o<0,d=o<30&&o>0;let u="success",s=90;return i?(u="error",s=0):d&&(u="warning",s=50),{status:u,titulo:i?"Certificado SSL Expirado!":d?"Certificado SSL Vence em Breve":"Certificado SSL Valido",mensagem:i?`O certificado SSL de ${a} EXPIROU em ${l?.toLocaleDateString("pt-BR")}. Seu site esta inseguro!`:`Certificado SSL de ${a} emitido por ${n.split("=").pop()}. ${d?`Vence em ${o} dias.`:`Valido ate ${l?.toLocaleDateString("pt-BR")}.`}`,detalhes:{Dominio:a,Emissor:n.split("=").pop()||n,"Valido ate":l?.toLocaleDateString("pt-BR")||"Desconhecido","Dias restantes":String(o)},recomendacoes:i?["RENOVE IMEDIATAMENTE seu certificado SSL","Use Let's Encrypt (gratuito) ou contrate um certificado pago","Entre em contato com a Avanzato para renovacao urgente"]:d?[`Renove seu certificado nos proximos ${o} dias`,"Configure renovacao automatica","Considere usar Let's Encrypt com auto-renew"]:["Seu certificado SSL esta valido!","Configure renovacao automatica para evitar expiracao","Monitore a data de vencimento"],score:s}}catch{return{status:"info",titulo:"Verificacao de SSL",mensagem:`Nao foi possivel verificar o SSL de ${a} externamente. Verifique diretamente no navegador clicando no cadeado ao lado da URL.`,score:50}}}async function ue(a){const[m,c,t,n]=await Promise.all([E(a),T(a),q(a),L(a)]),l=[m.score||0,c.score||0,t.score||0,n.score||0],o=Math.floor(l.reduce((d,u)=>d+u,0)/l.length);let i="success";return o<50?i="error":o<80&&(i="warning"),{status:i,titulo:`Email Security Score: ${o}/100`,mensagem:o>=80?`A seguranca de e-mail de ${a} esta boa! Score: ${o}/100.`:o>=50?`A seguranca de e-mail de ${a} precisa de atencao. Score: ${o}/100.`:`A seguranca de e-mail de ${a} esta critica! Score: ${o}/100.`,detalhes:{Dominio:a,"Score Total":`${o}/100`,SPF:`${m.score}/100 (${m.status==="success"?"OK":"Problema"})`,DKIM:`${c.score}/100 (${c.status==="success"?"OK":"Atenção"})`,DMARC:`${t.score}/100 (${t.status==="success"?"OK":"Problema"})`,MX:`${n.score}/100 (${n.status==="success"?"OK":"Problema"})`},recomendacoes:[...m.recomendacoes||[],...t.recomendacoes||[],...c.score&&c.score<80?c.recomendacoes||[]:[]].filter((d,u,s)=>s.indexOf(d)===u).slice(0,6),score:o}}async function me(a){const[m,c,t,n]=await Promise.all([L(a),E(a),q(a),T(a)]),l=m.detalhes?.Provedor?.includes("Microsoft"),o=l?40:0,i=c.score||0,d=t.score||0,u=n.score||0,s=Math.min(100,o+Math.floor((i+d+u)/3*.6));let p="success";return s<40?p="error":s<70&&(p="warning"),{status:p,titulo:`Microsoft 365 Analyzer: ${s}/100`,mensagem:l?`O dominio ${a} esta configurado com Microsoft 365. Score de seguranca: ${s}/100.`:`O dominio ${a} nao parece usar Microsoft 365 como servidor de e-mail principal. Score de seguranca: ${s}/100.`,detalhes:{Dominio:a,"Usa Microsoft 365":l?"Sim":"Nao detectado","Score Total":`${s}/100`,SPF:`${i}/100`,DKIM:`${u}/100`,DMARC:`${d}/100`},recomendacoes:l?[...s<80?["Configure DKIM corretamente para Microsoft 365"]:[],...d<80?["Fortaleca a politica DMARC"]:[],"Habilite ATP (Advanced Threat Protection) no Microsoft 365","Configure regras de anti-spam e anti-malware","Ative a autenticacao de dois fatores para todos os usuarios"]:["Se voce usa Microsoft 365, verifique se os registros MX estao corretos","Configure SPF com include:_spf.microsoft.com","Ative DKIM no portal do Microsoft 365","Configure DMARC para monitoramento"],score:s}}export{le as F,q as a,ue as b,T as c,L as d,me as e,E as f,de as g};
|