Recientes
No hay entradas.
// Tu clave de API de Google Safe Browsing const apiKey = 'AIzaSyAO6-XPqSZ_oRrZ3Fev63-JKPEqqZl24fc'; // Reemplaza con tu clave de API real // Función para verificar si una URL es segura async function checkUrlSafety(url) { const apiUrl = 'https://safebrowsing.googleapis.com/v4/threatMatches:find?key=' + apiKey; const requestBody = { client: { clientId: "tuCliente", clientVersion: "1.0" }, threatInfo: { threatTypes: [ "MALWARE", "SOCIAL_ENGINEERING", "UNWANTED_SOFTWARE", "POTENTIALLY_HARMFUL_APPLICATION", "PHISHING" ], platformTypes: ["ANY_PLATFORM"], urlList: [url] } }; try { const response = await fetch(apiUrl, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(requestBody) }); if (response.status === 200) { const result = await response.json(); console.log("Respuesta de la API:", result); // Esto mostrará toda la respuesta de la API // Comprobamos si la URL es peligrosa if (result.matches && result.matches.length > 0) { console.log("¡Se ha detectado una URL peligrosa!"); return true; // URL peligrosa } else { console.log("La URL es segura."); return false; // URL segura } } else { console.error("Error en la API, estado:", response.status); return false; // Si hay un error en la solicitud, asumimos que la URL es segura } } catch (error) { console.error("Error al verificar la URL con Google Safe Browsing:", error); return false; // En caso de error, asumimos que la URL es segura } } // Función para verificar todos los enlaces en la página document.addEventListener("DOMContentLoaded", function() { // Obtener todos los elementos de la página que puedan contener enlaces let allLinks = document.querySelectorAll("a, p, span, div"); allLinks.forEach(function(element) { let url = element.href ? element.href.toLowerCase() : ''; // Verificar si el elemento tiene un enlace if (url) { // Verificar si la URL es peligrosa con Google Safe Browsing checkUrlSafety(url).then(isDangerous => { if (isDangerous) { // Resaltar y agregar alerta console.log("¡Alerta de enlace peligroso!"); // Esto también aparecerá en la consola element.style.color = "red"; element.style.fontWeight = "bold"; element.innerHTML += " ⚠️"; // Agregar el ícono de alerta // Confirmación al hacer clic en enlaces peligrosos if (element.tagName.toLowerCase() === "a") { element.addEventListener("click", function(event) { event.preventDefault(); // Prevenir la acción predeterminada (abrir el enlace) let confirmacion = confirm("⚠️ ALERTA: Este enlace puede ser peligroso. ¿Seguro que quieres continuar?"); if (confirmacion) { window.open(url, "_blank"); // Abre el enlace si el usuario confirma } }); } } else { // Si la URL es segura, asegurarse de que no tenga el estilo de alerta console.log("URL segura, sin alerta."); element.style.color = ""; // Restablecer el color element.style.fontWeight = ""; // Restablecer el peso de la fuente element.innerHTML = element.innerHTML.replace(" ⚠️", ""); // Eliminar ícono de alerta si es seguro } }).catch(error => { console.error("Error al verificar la URL:", error); }); } }); });