cyber / index.html
stellababy2004's picture
не работи оправи да работи чатбота моля те на трите еззика - Follow Up Deployment
4ed517a verified
function normalizeUrl(url) {
return url.trim()
.replace(/^https?:\/\//i, '')
.replace(/\/$/, '')
.toLowerCase();
}
async function checkPhishing(url) {
const testUrl = normalizeUrl(url);
return openPhishList.some(ph => normalizeUrl(ph) === testUrl);
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Stella Barbarella SOC Analyst & Cybersecurity Portfolio</title>
<meta name="description" content="Cybersecurity Portfolio of Stella Barbarella – SOC Analyst, Threat Hunter & Cybersecurity Enthusiast." />
<meta name="keywords" content="SOC Analyst, Cybersecurity, Threat Hunting, Phishing Detector, Cyber Threat Map, Charts" />
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" />
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" />
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster/dist/MarkerCluster.Default.css" />
<script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
<script src="https://unpkg.com/leaflet.markercluster/dist/leaflet.markercluster.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/particles.min.js"></script>
<style>
.cyber-gradient {
background: linear-gradient(135deg, #101820 0%, #0a1220 50%, #0a0a2a 100%);
}
.cyber-border {
border-color: #00ffee;
}
.cyber-shadow {
box-shadow: 0 0 15px rgba(0, 255, 238, 0.3);
}
.cyber-text {
color: #00ffee;
}
.cyber-bg {
background-color: rgba(10, 20, 30, 0.92);
}
.cyber-button {
transition: all 0.3s ease;
}
.cyber-button:hover {
background: rgba(0, 255, 255, 0.1);
color: #00ffee;
box-shadow: 0 0 10px #00ffee;
}
.leaflet-container {
background: #101820 !important;
}
.log-output {
font-family: 'Courier New', monospace;
}
#particles-js {
position: fixed;
width: 100%;
height: 100%;
z-index: -1;
top: 0;
left: 0;
}
.language-selector {
position: fixed;
top: 20px;
right: 20px;
z-index: 1000;
}
.threat-map-iframe {
border: 1px solid #00ffee;
border-radius: 8px;
}
</style>
</head>
<body class="cyber-gradient text-gray-100 min-h-screen">
<div id="particles-js"></div>
<!-- Language Selector -->
<div class="language-selector">
<div class="flex space-x-2">
<button onclick="changeLanguage('en')" class="px-3 py-1 bg-gray-800 hover:bg-gray-700 rounded-md cyber-button">EN</button>
<button onclick="changeLanguage('bg')" class="px-3 py-1 bg-gray-800 hover:bg-gray-700 rounded-md cyber-button">BG</button>
<button onclick="changeLanguage('fr')" class="px-3 py-1 bg-gray-800 hover:bg-gray-700 rounded-md cyber-button">FR</button>
</div>
</div>
<header class="bg-black bg-opacity-85 pb-0 border-b-2 cyber-border">
<nav class="container mx-auto px-4 py-4">
<ul class="flex flex-wrap justify-center gap-2 mb-2">
<li><a href="#about" class="px-6 py-3 cyber-bg rounded-lg cyber-button inline-block" data-i18n="nav.about">About Me</a></li>
<li><a href="#projects" class="px-6 py-3 cyber-bg rounded-lg cyber-button inline-block" data-i18n="nav.projects">Projects</a></li>
<li><a href="#chart" class="px-6 py-3 cyber-bg rounded-lg cyber-button inline-block" data-i18n="nav.charts">Charts</a></li>
<li><a href="#attack-sim" class="px-6 py-3 cyber-bg rounded-lg cyber-button inline-block" data-i18n="nav.attackSim">AttackSim</a></li>
<li><a href="#cybersec-chatbot" class="px-6 py-3 cyber-bg rounded-lg cyber-button inline-block" data-i18n="nav.chatbot">🤖 Open AI Chatbot</a></li>
<li><a href="#map-section" class="px-6 py-3 cyber-bg rounded-lg cyber-button inline-block" data-i18n="nav.liveMap">Live Map</a></li>
<li><a href="#testimonials" class="px-6 py-3 cyber-bg rounded-lg cyber-button inline-block" data-i18n="nav.testimonials">Testimonials</a></li>
<li><a href="#contact" class="px-6 py-3 cyber-bg rounded-lg cyber-button inline-block" data-i18n="nav.contact">Contact</a></li>
</ul>
<ul class="flex flex-wrap justify-center gap-2 mt-2">
<li>
<a class="px-6 py-3 cyber-bg rounded-lg cyber-button inline-block" href="penetration_test_report_acme_en.pdf" target="_blank" rel="noopener" download>
<span data-i18n="nav.report">📄 Report (PDF)</span>
</a>
</li>
<li>
<a href="presentation.html" target="_blank" rel="noopener" class="px-6 py-3 cyber-bg rounded-lg cyber-button inline-block" data-i18n="nav.presentation">
📊 View Pentest Presentation
</a>
</li>
</ul>
<div class="text-center my-6">
<img src="images/logo.png" alt="Stella Barbarella Logo" class="mx-auto h-24" />
</div>
</nav>
</header>
<main class="container mx-auto px-4 py-8">
<!-- About Section -->
<section class="cyber-bg rounded-xl cyber-shadow p-8 mb-8" id="about">
<h1 class="text-3xl font-bold cyber-text mb-2">Stella Barbarella</h1>
<p class="text-xl" data-i18n="about.subtitle">SOC Analyst | Cybersecurity Enthusiast | Threat Hunter</p>
<div class="mt-4" data-i18n="about.description">
<p>Cybersecurity professional with expertise in threat detection, incident response, and security operations.</p>
<p class="mt-2">Specialized in analyzing security events, identifying vulnerabilities, and implementing protective measures.</p>
</div>
</section>
<!-- Projects Section -->
<section class="cyber-bg rounded-xl cyber-shadow p-8 mb-8" id="projects">
<h2 class="text-2xl font-bold cyber-text mb-4" data-i18n="projects.title">Projects</h2>
<ul class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
<li><a href="cyber-threat-map.html" class="block px-6 py-4 cyber-bg rounded-lg cyber-button text-center" data-i18n="projects.threatMap">🔍 Cyber Threat Map</a></li>
<li><a href="threat-hunting.html" class="block px-6 py-4 cyber-bg rounded-lg cyber-button text-center" data-i18n="projects.threatHunting">🧠 Threat Hunting</a></li>
<li><a href="#checkpoint-map" class="block px-6 py-4 cyber-bg rounded-lg cyber-button text-center" data-i18n="projects.threatLive">🌐 Threat Live</a></li>
<li><a href="Stella_Barbarella_CV.odt" download class="block px-6 py-4 cyber-bg rounded-lg cyber-button text-center" data-i18n="projects.myCV">📄 My CV</a></li>
</ul>
</section>
<!-- Phishing Checker -->
<section class="cyber-bg rounded-xl cyber-shadow p-8 mb-8" id="phishing-checker">
<h2 class="text-2xl font-bold cyber-text mb-4" data-i18n="phishing.title">Phishing URL Checker</h2>
<form id="phishing-form" class="space-y-4">
<label for="url" class="block" data-i18n="phishing.label">Enter URL to check:</label>
<div class="flex flex-col md:flex-row gap-2">
<input type="text" id="url" placeholder="https://example.com" required
class="flex-grow px-4 py-2 bg-gray-800 border border-gray-700 rounded-lg focus:outline-none focus:ring-2 focus:ring-cyan-500" />
<button type="submit" class="px-6 py-2 bg-cyan-600 hover:bg-cyan-700 rounded-lg cyber-button" data-i18n="phishing.button">
Check
</button>
</div>
</form>
<div id="phishing-result" class="mt-4 p-4 rounded-lg hidden"></div>
</section>
<!-- Pentest Reports -->
<section class="cyber-bg rounded-xl cyber-shadow p-8 mb-8" id="pentest-reports">
<h2 class="text-2xl font-bold cyber-text mb-4" data-i18n="pentest.title">Pentest Reports</h2>
<p class="mb-4" data-i18n="pentest.intro">
Explore real-world pentest deliverables from <strong>Stella Barbarella</strong>.
</p>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div class="p-4 bg-gray-800 rounded-lg">
<h3 class="text-lg font-semibold cyber-text" data-i18n="pentest.report1.title">ACME Corporation Security Assessment</h3>
<p class="mt-2 text-sm" data-i18n="pentest.report1.description">Comprehensive penetration test report covering web application and network security.</p>
<a href="#" class="inline-block mt-3 px-4 py-2 bg-cyan-600 hover:bg-cyan-700 rounded cyber-button text-sm" data-i18n="pentest.download">
Download Report
</a>
</div>
<div class="p-4 bg-gray-800 rounded-lg">
<h3 class="text-lg font-semibold cyber-text" data-i18n="pentest.report2.title">Financial Institution Red Team Exercise</h3>
<p class="mt-2 text-sm" data-i18n="pentest.report2.description">Simulated attack scenario with detailed findings and remediation recommendations.</p>
<a href="#" class="inline-block mt-3 px-4 py-2 bg-cyan-600 hover:bg-cyan-700 rounded cyber-button text-sm" data-i18n="pentest.download">
Download Report
</a>
</div>
</div>
</section>
<!-- Log Analyzer -->
<section class="cyber-bg rounded-xl cyber-shadow p-8 mb-8" id="log-analyzer">
<h2 class="text-2xl font-bold cyber-text mb-4" data-i18n="logs.title">Live Log Analyzer</h2>
<button id="toggle-logs" class="mb-4 px-4 py-2 bg-gray-800 hover:bg-gray-700 rounded-lg cyber-button" data-i18n="logs.toggle">
⏸ Pause Logs
</button>
<pre id="log-output" class="log-output p-4 bg-black rounded-lg overflow-auto h-64"></pre>
</section>
<!-- Chatbot -->
<section class="cyber-bg rounded-xl cyber-shadow p-8 mb-8" id="cybersec-chatbot">
<h2 class="text-2xl font-bold cyber-text mb-4" data-i18n="chatbot.title">CyberSec AI Chat 🤖</h2>
<div class="bg-gray-800 p-4 rounded-lg">
<p class="mb-4" data-i18n="chatbot.description">Ask our AI assistant about cybersecurity topics, threats, and best practices.</p>
<iframe src="https://stellababy2004-cyber-chat.hf.space" frameborder="0" width="100%" height="600" class="rounded-lg"></iframe>
<div id="chatbot-fallback" class="hidden mt-4 p-4 bg-red-900 rounded-lg">
<p data-i18n="chatbot.fallback">The chatbot is currently unavailable. Please try again later.</p>
<a href="https://chat.openai.com/" target="_blank" class="inline-block mt-2 px-4 py-2 bg-cyan-600 hover:bg-cyan-700 rounded cyber-button" data-i18n="chatbot.alternative">
Try Alternative Chatbot
</a>
</div>
</div>
</section>
<!-- Attack Simulation -->
<section class="cyber-bg rounded-xl cyber-shadow p-8 mb-8" id="attack-sim">
<h2 class="text-2xl font-bold cyber-text mb-4" data-i18n="attack.title">Attack Simulation Lab</h2>
<p class="mb-4" data-i18n="attack.description">Select an attack type to simulate:</p>
<div id="attack-buttons" class="grid grid-cols-2 md:grid-cols-4 gap-4 mb-6">
<button type="button" class="px-4 py-3 cyber-bg rounded-lg cyber-button" data-attack="phishing" data-i18n="attack.phishing">Phishing</button>
<button type="button" class="px-4 py-3 cyber-bg rounded-lg cyber-button" data-attack="brute-force" data-i18n="attack.bruteForce">Brute Force</button>
<button type="button" class="px-4 py-3 cyber-bg rounded-lg cyber-button" data-attack="malware" data-i18n="attack.malware">Malware</button>
<button type="button" class="px-4 py-3 cyber-bg rounded-lg cyber-button" data-attack="ddos" data-i18n="attack.ddos">DDoS</button>
</div>
<div id="attack-result" class="p-4 bg-gray-800 rounded-lg hidden"></div>
</section>
<!-- Testimonials -->
<section class="cyber-bg rounded-xl cyber-shadow p-8 mb-8" id="testimonials">
<h2 class="text-2xl font-bold cyber-text mb-4" data-i18n="testimonials.title">Testimonials</h2>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<div class="p-6 bg-gray-800 rounded-lg">
<blockquote>
<p class="italic" data-i18n="testimonials.quote1">"Stella's attention to detail and analytical skills are unmatched!"</p>
<footer class="mt-4 font-semibold cyber-text">- <span data-i18n="testimonials.author1">John Doe, Cybersecurity Expert</span></footer>
</blockquote>
</div>
<div class="p-6 bg-gray-800 rounded-lg">
<blockquote>
<p class="italic" data-i18n="testimonials.quote2">"Her passion for cybersecurity is evident in her work."</p>
<footer class="mt-4 font-semibold cyber-text">- <span data-i18n="testimonials.author2">Jane Smith, SOC Manager</span></footer>
</blockquote>
</div>
</div>
</section>
<!-- Checkpoint Map -->
<section class="cyber-bg rounded-xl cyber-shadow p-8 mb-8" id="checkpoint-map">
<h2 class="text-2xl font-bold cyber-text mb-4" data-i18n="checkpoint.title">Live Threat Map (Check Point)</h2>
<div class="aspect-w-16 aspect-h-9">
<iframe src="https://threatmap.checkpoint.com/" title="Live Threat Map" class="threat-map-iframe w-full h-96"></iframe>
</div>
</section>
<!-- Chart Section -->
<section class="cyber-bg rounded-xl cyber-shadow p-8 mb-8" id="chart">
<h2 class="text-2xl font-bold cyber-text mb-4" data-i18n="chart.title">Cyber Threat Analysis</h2>
<div class="chart-container">
<canvas id="threatChart" height="200"></canvas>
</div>
</section>
<!-- Map Section -->
<section class="cyber-bg rounded-xl cyber-shadow p-8 mb-8" id="map-section">
<h2 class="text-2xl font-bold cyber-text mb-4" data-i18n="map.title">Global Threat Locations</h2>
<div id="map" class="w-full h-96 rounded-lg border border-cyan-500"></div>
<button id="clear-map" class="mt-4 px-4 py-2 bg-gray-800 hover:bg-gray-700 rounded-lg cyber-button" data-i18n="map.clear">
🧹 Clear Map
</button>
</section>
<!-- Contact Section -->
<section class="cyber-bg rounded-xl cyber-shadow p-8" id="contact">
<h2 class="text-2xl font-bold cyber-text mb-4" data-i18n="contact.title">Contact Me</h2>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<div>
<p data-i18n="contact.email">Email: <a href="mailto:[email protected]" class="text-cyan-400 hover:text-cyan-300">[email protected]</a></p>
<p class="mt-2" data-i18n="contact.linkedin">LinkedIn: <a href="#" class="text-cyan-400 hover:text-cyan-300" target="_blank">linkedin.com/in/stella-barbarella</a></p>
</div>
<div>
<p data-i18n="contact.availability">Available for consulting and freelance projects.</p>
<p class="mt-2" data-i18n="contact.response">Response time: typically within 24 hours.</p>
</div>
</div>
</section>
</main>
<footer class="bg-black bg-opacity-70 py-6 mt-12">
<div class="container mx-auto px-4 text-center">
<p data-i18n="footer.copyright">© 2023 Stella Barbarella. All rights reserved.</p>
<div class="flex justify-center space-x-4 mt-4">
<a href="#" class="text-gray-400 hover:text-cyan-400"><i class="fab fa-github fa-lg"></i></a>
<a href="#" class="text-gray-400 hover:text-cyan-400"><i class="fab fa-linkedin fa-lg"></i></a>
<a href="#" class="text-gray-400 hover:text-cyan-400"><i class="fab fa-twitter fa-lg"></i></a>
</div>
</div>
</footer>
<script>
// Language support
const translations = {
en: {
"nav.about": "About Me",
"nav.projects": "Projects",
"nav.charts": "Charts",
"nav.attackSim": "AttackSim",
"nav.chatbot": "🤖 Open AI Chatbot",
"nav.liveMap": "Live Map",
"nav.testimonials": "Testimonials",
"nav.contact": "Contact",
"nav.report": "📄 Report (PDF)",
"nav.presentation": "📊 View Pentest Presentation",
"about.subtitle": "SOC Analyst | Cybersecurity Enthusiast | Threat Hunter",
"about.description": "<p>Cybersecurity professional with expertise in threat detection, incident response, and security operations.</p><p class='mt-2'>Specialized in analyzing security events, identifying vulnerabilities, and implementing protective measures.</p>",
"projects.title": "Projects",
"projects.threatMap": "🔍 Cyber Threat Map",
"projects.threatHunting": "🧠 Threat Hunting",
"projects.threatLive": "🌐 Threat Live",
"projects.myCV": "📄 My CV",
"phishing.title": "Phishing URL Checker",
"phishing.label": "Enter URL to check:",
"phishing.button": "Check",
"pentest.title": "Pentest Reports",
"pentest.intro": "Explore real-world pentest deliverables from <strong>Stella Barbarella</strong>.",
"pentest.report1.title": "ACME Corporation Security Assessment",
"pentest.report1.description": "Comprehensive penetration test report covering web application and network security.",
"pentest.report2.title": "Financial Institution Red Team Exercise",
"pentest.report2.description": "Simulated attack scenario with detailed findings and remediation recommendations.",
"pentest.download": "Download Report",
"logs.title": "Live Log Analyzer",
"logs.toggle": "⏸ Pause Logs",
"chatbot.title": "CyberSec AI Chat 🤖",
"chatbot.description": "Ask our AI assistant about cybersecurity topics, threats, and best practices.",
"chatbot.fallback": "The chatbot is currently unavailable. Please try again later.",
"chatbot.alternative": "Try Alternative Chatbot",
"attack.title": "Attack Simulation Lab",
"attack.description": "Select an attack type to simulate:",
"attack.phishing": "Phishing",
"attack.bruteForce": "Brute Force",
"attack.malware": "Malware",
"attack.ddos": "DDoS",
"testimonials.title": "Testimonials",
"testimonials.quote1": "\"Stella's attention to detail and analytical skills are unmatched!\"",
"testimonials.author1": "John Doe, Cybersecurity Expert",
"testimonials.quote2": "\"Her passion for cybersecurity is evident in her work.\"",
"testimonials.author2": "Jane Smith, SOC Manager",
"checkpoint.title": "Live Threat Map (Check Point)",
"chart.title": "Cyber Threat Analysis",
"map.title": "Global Threat Locations",
"map.clear": "🧹 Clear Map",
"contact.title": "Contact Me",
"contact.email": "Email:",
"contact.linkedin": "LinkedIn:",
"contact.availability": "Available for consulting and freelance projects.",
"contact.response": "Response time: typically within 24 hours.",
"footer.copyright": "© 2023 Stella Barbarella. All rights reserved."
},
bg: {
"nav.about": "За Мен",
"nav.projects": "Проекти",
"nav.charts": "Графики",
"nav.attackSim": "Атака Симулатор",
"nav.chatbot": "🤖 Отвори AI Чатбот",
"nav.liveMap": "Жива Карта",
"nav.testimonials": "Препоръки",
"nav.contact": "Контакт",
"nav.report": "📄 Доклад (PDF)",
"nav.presentation": "📊 Виж Презентация",
"about.subtitle": "SOC Аналитик | Киберсигурност Ентусиаст | Ловец на Заплахи",
"about.description": "<p>Професионалист в киберсигурността с опит в откриване на заплахи, реагиране на инциденти и сигурностни операции.</p><p class='mt-2'>Специализирана в анализ на сигурностни събития, идентифициране на уязвимости и прилагане на защитни мерки.</p>",
"projects.title": "Проекти",
"projects.threatMap": "🔍 Карта на Киберзаплахи",
"projects.threatHunting": "🧠 Търсене на Заплахи",
"projects.threatLive": "🌐 Живи Заплахи",
"projects.myCV": "📄 Моето CV",
"phishing.title": "Проверка на URL за Фишинг",
"phishing.label": "Въведете URL за проверка:",
"phishing.button": "Провери",
"pentest.title": "Доклади за Пенетрационни Тестове",
"pentest.intro": "Разгледайте реални доклади от пенетрационни тестове на <strong>Stella Barbarella</strong>.",
"pentest.report1.title": "Оценка на Сигурността на ACME Corporation",
"pentest.report1.description": "Изчерпателен доклад за пенетрационен тест, обхващащ уеб приложение и мрежова сигурност.",
"pentest.report2.title": "Упражнение на Червен Екип за Финансова Институция",
"pentest.report2.description": "Симулиран сценарий на атака с подробни намерения и препоръки за подобрение.",
"pentest.download": "Изтегли Доклад",
"logs.title": "Анализатор на Логове в Реално Време",
"logs.toggle": "⏸ Спри Логовете",
"chatbot.title": "Киберсигурностен AI Чат 🤖",
"chatbot.description": "Питайте нашия AI асистент за теми, свързани с киберсигурност, заплахи и най-добри практики.",
"chatbot.fallback": "Чатботът е временно недостъпен. Моля, опитайте по-късно.",
"chatbot.alternative": "Опитайте Алтернативен Чатбот",
"chatbot.fallback": "Чатботът е временно недостъпен. Моля, опитайте по-късно.",
"chatbot.alternative": "Опитайте Алтернативен Чатбот",
"attack.title": "Лаборатория за Симулация на Атаки",
"attack.description": "Изберете тип атака за симулиране:",
"attack.phishing": "Фишинг",
"attack.bruteForce": "Груба Сила",
"attack.malware": "Зловреден Софтуер",
"attack.ddos": "DDoS",
"testimonials.title": "Препоръки",
"testimonials.quote1": "\"Вниманието към детайлите и аналитичните умения на Стела са безпрецедентни!\"",
"testimonials.author1": "Джон Доу, Експерт по Киберсигурност",
"testimonials.quote2": "\"Страстта й към киберсигурността се вижда в работата й.\"",
"testimonials.author2": "Джейн Смит, Мениджър SOC",
"checkpoint.title": "Жива Карта на Заплахи (Check Point)",
"chart.title": "Анализ на Киберзаплахи",
"map.title": "Глобални Локации на Заплахи",
"map.clear": "🧹 Изчисти Картата",
"contact.title": "Връзка с Мен",
"contact.email": "Имейл:",
"contact.linkedin": "LinkedIn:",
"contact.availability": "Налична съм за консултации и фрийланс проекти.",
"contact.response": "Време за отговор: обикновено в рамките на 24 часа.",
"footer.copyright": "© 2023 Stella Barbarella. Всички права запазени."
},
fr: {
"nav.about": "À Propos",
"nav.projects": "Projets",
"nav.charts": "Graphiques",
"nav.attackSim": "Simulation d'Attaque",
"nav.chatbot": "🤖 Ouvrir le Chatbot IA",
"nav.liveMap": "Carte en Direct",
"nav.testimonials": "Témoignages",
"nav.contact": "Contact",
"nav.report": "📄 Rapport (PDF)",
"nav.presentation": "📊 Voir la Présentation",
"about.subtitle": "Analyste SOC | Passionnée de Cybersécurité | Chasseuse de Menaces",
"about.description": "<p>Professionnelle en cybersécurité avec une expertise en détection de menaces, réponse aux incidents et opérations de sécurité.</p><p class='mt-2'>Spécialisée dans l'analyse des événements de sécurité, l'identification des vulnérabilités et la mise en œuvre de mesures de protection.</p>",
"projects.title": "Projets",
"projects.threatMap": "🔍 Carte des Cybermenaces",
"projects.threatHunting": "🧠 Chasse aux Menaces",
"projects.threatLive": "🌐 Menaces en Direct",
"projects.myCV": "📄 Mon CV",
"phishing.title": "Vérificateur d'URL de Hameçonnage",
"phishing.label": "Entrez l'URL à vérifier:",
"phishing.button": "Vérifier",
"pentest.title": "Rapports de Tests d'Intrusion",
"pentest.intro": "Découvrez des livrables réels de tests d'intrusion par <strong>Stella Barbarella</strong>.",
"pentest.report1.title": "Évaluation de Sécurité d'ACME Corporation",
"pentest.report1.description": "Rapport complet de test d'intrusion couvrant la sécurité des applications web et du réseau.",
"pentest.report2.title": "Exercice d'Équipe Rouge pour une Institution Financière",
"pentest.report2.description": "Scénario d'attaque simulé avec des conclusions détaillées et des recommandations de remédiation.",
"pentest.download": "Télécharger le Rapport",
"logs.title": "Analyseur de Journaux en Direct",
"logs.toggle": "⏸ Pause Journaux",
"chatbot.title": "Chat IA de Cybersécurité 🤖",
"chatbot.description": "Posez des questions à notre assistant IA sur des sujets de cybersécurité, des menaces et des bonnes pratiques.",
"chatbot.fallback": "Le chatbot est actuellement indisponible. Veuillez réessayer plus tard.",
"chatbot.alternative": "Essayer un Chatbot Alternatif",
"chatbot.fallback": "Le chatbot est actuellement indisponible. Veuillez réessayer plus tard.",
"chatbot.alternative": "Essayer un Chatbot Alternatif",
"attack.title": "Laboratoire de Simulation d'Attaque",
"attack.description": "Sélectionnez un type d'attaque à simuler:",
"attack.phishing": "Hameçonnage",
"attack.bruteForce": "Force Brute",
"attack.malware": "Logiciel Malveillant",
"attack.ddos": "DDoS",
"testimonials.title": "Témoignages",
"testimonials.quote1": "\"L'attention aux détails et les compétences analytiques de Stella sont incomparables !\"",
"testimonials.author1": "John Doe, Expert en Cybersécurité",
"testimonials.quote2": "\"Sa passion pour la cybersécurité est évidente dans son travail.\"",
"testimonials.author2": "Jane Smith, Responsable SOC",
"checkpoint.title": "Carte des Menaces en Direct (Check Point)",
"chart.title": "Analyse des Cybermenaces",
"map.title": "Localisations Mondiales des Menaces",
"map.clear": "🧹 Effacer la Carte",
"contact.title": "Contactez-moi",
"contact.email": "Email:",
"contact.linkedin": "LinkedIn:",
"contact.availability": "Disponible pour des projets de conseil et freelance.",
"contact.response": "Temps de réponse: généralement sous 24 heures.",
"footer.copyright": "© 2023 Stella Barbarella. Tous droits réservés."
}
};
let currentLanguage = 'en';
function changeLanguage(lang) {
currentLanguage = lang;
document.querySelectorAll('[data-i18n]').forEach(element => {
const key = element.getAttribute('data-i18n');
if (translations[lang][key]) {
if (element.tagName === 'INPUT' || element.tagName === 'TEXTAREA') {
element.placeholder = translations[lang][key];
} else {
element.innerHTML = translations[lang][key];
}
}
});
}
// Initialize with English
changeLanguage('en');
// Map functionality
document.addEventListener("DOMContentLoaded", function () {
if (typeof L === "undefined") return;
const map = L.map('map').setView([20, 0], 2);
window.attackSimMap = map;
window.globalMapMarkers = [];
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '&copy; OpenStreetMap contributors'
}).addTo(map);
// Add threat markers
const threatCities = [
{ name: "London", coords: [51.5074, -0.1278], type: "Phishing" },
{ name: "New York", coords: [40.7128, -74.0060], type: "DDoS" },
{ name: "Paris", coords: [48.8566, 2.3522], type: "Malware" },
{ name: "Tokyo", coords: [35.6895, 139.6917], type: "Ransomware" },
{ name: "Sofia", coords: [42.6977, 23.3219], type: "Brute Force" }
];
threatCities.forEach(city => {
const marker = L.marker(city.coords)
.addTo(map)
.bindPopup(
`<b>Threat detected in ${city.name}</b><br>Type: <span style="color:#00ffee">${city.type}</span>`
);
window.globalMapMarkers.push(marker);
});
document.getElementById('clear-map').addEventListener('click', function () {
if (window.globalMapMarkers && Array.isArray(window.globalMapMarkers)) {
window.globalMapMarkers.forEach(marker => {
if (map.hasLayer(marker)) {
map.removeLayer(marker);
}
});
window.globalMapMarkers = [];
}
});
});
// Log analyzer
document.addEventListener("DOMContentLoaded", function () {
const logOutput = document.getElementById('log-output');
const toggleBtn = document.getElementById('toggle-logs');
let paused = false;
let logInterval;
const logs = [
"[INFO] Connection from 192.168.1.10 accepted.",
"[ALERT] Suspicious login attempt detected from 203.0.113.5.",
"[WARNING] Multiple failed logins for user 'admin'.",
"[INFO] Malware signature updated successfully.",
"[CRITICAL] Ransomware activity detected on host 10.0.0.23.",
"[INFO] Outbound traffic to 8.8.8.8 allowed.",
"[ALERT] Phishing email detected and quarantined.",
"[INFO] User 'stella' changed password.",
"[WARNING] Unusual data transfer detected.",
"[INFO] System scan completed. No threats found.",
"[NOTICE] New device registered: 10.1.1.5.",
"[DEBUG] Packet dropped due to invalid checksum.",
"[ERROR] Failed to update antivirus definitions.",
"[SUCCESS] Backup completed successfully.",
"[FAIL] Backup failed: disk full.",
"[INFO] User 'admin' logged out.",
"[ALERT] Port scan detected from 185.23.44.12.",
"[CRITICAL] Data exfiltration attempt blocked.",
"[WARNING] High CPU usage detected on server01.",
"[NOTICE] Scheduled maintenance started.",
"[SUCCESS] Patch applied to all endpoints."
];
function addLog() {
if (!paused) {
const log = logs[Math.floor(Math.random() * logs.length)];
const now = new Date().toLocaleTimeString();
let color = "#00ffee";
if (log.includes("CRITICAL")) color = "#ff1744";
else if (log.includes("ALERT")) color = "#ffea00";
else if (log.includes("WARNING")) color = "#ff9100";
else if (log.includes("ERROR") || log.includes("FAIL")) color = "#ff1744";
else if (log.includes("SUCCESS")) color = "#00e676";
else if (log.includes("NOTICE")) color = "#00b0ff";
else if (log.includes("DEBUG")) color = "#bdbdbd";
else if (log.includes("INFO")) color = "#00ffee";
const span = document.createElement('span');
span.textContent = `[${now}] ${log}\n`;
span.style.color = color;
logOutput.appendChild(span);
logOutput.scrollTop = logOutput.scrollHeight;
}
}
function startLogs() {
logInterval = setInterval(addLog, 1200);
}
function stopLogs() {
clearInterval(logInterval);
}
if (logOutput && toggleBtn) {
startLogs();
toggleBtn.addEventListener('click', function () {
paused = !paused;
if (paused) {
stopLogs();
toggleBtn.innerHTML = currentLanguage === 'en' ? "▶ Resume Logs" :
currentLanguage === 'bg' ? "▶ Продължи Логовете" :
"▶ Reprendre les Journaux";
} else {
startLogs();
toggleBtn.innerHTML = currentLanguage === 'en' ? "⏸ Pause Logs" :
currentLanguage === 'bg' ? "⏸ Спри Логовете" :
"⏸ Pause Journaux";
}
});
}
});
// Attack simulation
document.addEventListener("DOMContentLoaded", function () {
const buttons = document.querySelectorAll('#attack-buttons .button');
const result = document.getElementById('attack-result');
const logOutput = document.getElementById('log-output');
const attackMap = window.attackSimMap;
const attackMarkers = window.globalMapMarkers || [];
const attackDescriptions = {
en: {
phishing: "Simulation: A phishing email was sent to an employee. The SOC detects a suspicious link and blocks access.",
"brute-force": "Simulation: Multiple failed login attempts detected. The system temporarily blocks the IP address.",
malware: "Simulation: A malicious file was uploaded. The antivirus system isolates it and alerts the SOC team.",
ddos: "Simulation: High traffic volume detected towards the server. DDoS protection limits attacking IPs."
},
bg: {
phishing: "Симулация: Изпратен е фишинг имейл до служител. SOC открива подозрителна връзка и блокира достъпа.",
"brute-force": "Симулация: Открити са множество неуспешни опити за влизане. Системата временно блокира IP адреса.",
malware: "Симулация: Качен е зловреден файл. Антивирусната система го изолира и сигнализира екипа на SOC.",
ddos: "Симулация: Открит е голям обем трафик към сървъра. DDoS защитата ограничава атакуващите IP адреси."
},
fr: {
phishing: "Simulation: Un e-mail de phishing a été envoyé à un employé. Le SOC détecte un lien suspect et bloque l'accès.",
"brute-force": "Simulation: Plusieurs tentatives de connexion infructueuses détectées. Le système bloque temporairement l'adresse IP.",
malware: "Simulation: Un fichier malveillant a été téléchargé. Le système antivirus l'isole et alerte l'équipe SOC.",
ddos: "Simulation: Volume de trafic élevé détecté vers le serveur. La protection DDoS limite les adresses IP attaquantes."
}
};
const attackLogs = {
en: {
phishing: "[ALERT] Phishing email detected and quarantined.",
"brute-force": "[WARNING] Multiple failed logins for user 'admin'.",
malware: "[CRITICAL] Malware detected and isolated.",
ddos: "[ALERT] DDoS attack detected. Traffic filtered."
},
bg: {
phishing: "[ALERT] Фишинг имейл открит и изолиран.",
"brute-force": "[WARNING] Множество неуспешни влизания за потребител 'admin'.",
malware: "[CRITICAL] Зловреден софтуер открит и изолиран.",
ddos: "[ALERT] DDoS атака открита. Трафикът е филтриран."
},
fr: {
phishing: "[ALERT] E-mail de phishing détecté et mis en quarantaine.",
"brute-force": "[WARNING] Plusieurs échecs de connexion pour l'utilisateur 'admin'.",
malware: "[CRITICAL] Logiciel malveillant détecté et isolé.",
ddos: "[ALERT] Attaque DDoS détectée. Trafic filtré."
}
};
const attackLocations = {
phishing: [51.5, -0.09],
"brute-force": [40.7, -74.0],
malware: [48.85, 2.35],
ddos: [35.68, 139.76]
};
const chartIndex = {
phishing: 0,
malware: 1,
ddos: 3,
"brute-force": 4
};
buttons.forEach(btn => {
btn.addEventListener('click', function () {
const type = btn.getAttribute('data-attack');
result.style.display = "block";
result.textContent = attackDescriptions[currentLanguage][type] || "No information for this attack type.";
result.className = "p-4 bg-gray-800 rounded-lg";
if (attackLogs[currentLanguage][type]) {
const now = new Date().toLocaleTimeString();
const span = document.createElement('span');
span.textContent = `[${now}] ${attackLogs[currentLanguage][type]}\n`;
span.style.color = "#ffea00";
logOutput.appendChild(span);
logOutput.scrollTop = logOutput.scrollHeight;
}
if (attackMap && attackLocations[type]) {
const marker = L.marker(attackLocations[type])
.addTo(attackMap)
.bindPopup(`${type.charAt(0).toUpperCase()}${type.slice(1)} attack`)
.openPopup();
attackMarkers.push(marker);
window.globalMapMarkers = attackMarkers;
}
if (window.threatChartInstance && chartIndex[type] !== undefined) {
window.threatChartInstance.data.datasets[0].data[chartIndex[type]] += 1;
window.threatChartInstance.update();
}
});
});
});
// Chart initialization
document.addEventListener("DOMContentLoaded", function () {
const ctx = document.getElementById('threatChart').getContext('2d');
window.threatChartInstance = new Chart(ctx, {
type: 'bar',
data: {
labels: ['Phishing', 'Malware', 'Ransomware', 'DDoS', 'Brute Force'],
datasets: [{
label: 'Detected Threats',
data: [12, 8, 4, 10, 6],
backgroundColor: [
'#00ffeecc','#ff00ccbb','#ffaa00bb','#00ff88bb','#ffea00bb'
],
borderColor: '#00ffee',
borderWidth: 2
}]
},
options: {
plugins: { legend: { display: false } },
scales: {
y: { beginAtZero: true, ticks: { color: '#00ffee' }, grid: { color: '#222' } },
x: { ticks: { color: '#00ffee' }, grid: { color: '#222' } }
}
}
});
});
// Phishing checker
let openPhishList = [];
let phishingListLoaded = false;
fetch('openphish.txt')
.then(res => {
if (!res.ok) throw new Error('List not found');
return res.text();
})
.then(text => {
openPhishList = text.split('\n').map(u => u.trim()).filter(Boolean);
phishingListLoaded = true;
})
.catch(() => {
phishingListLoaded = false;
const r = document.getElementById('phishing-result');
r.textContent = currentLanguage === 'en' ? '⚠️ Unable to load phishing list. Please try again later.' :
currentLanguage === 'bg' ? '⚠️ Неуспешно зареждане на списъка с фишинг. Моля, опитайте по-късно.' :
'⚠️ Impossible de charger la liste de phishing. Veuillez réessayer plus tard.';
r.style.color = 'orange';
document.getElementById('url').disabled = true;
document.querySelector('#phishing-form button').disabled = true;
});
function normalizeUrl(url) {
return url.trim()
.replace(/^https?:\/\//i, '')
.replace(/\/$/, '')
.toLowerCase();
}
async function checkPhishing(url) {
const testUrl = normalizeUrl(url);
return openPhishList.some(ph => normalizeUrl(ph) === testUrl);
}
document.getElementById('phishing-form').addEventListener('submit', async function(e) {
e.preventDefault();
if (!phishingListLoaded) return;
const url = document.getElementById('url').value;
const resultDiv = document.getElementById('phishing-result');
resultDiv.className = "p-4 rounded-lg";
resultDiv.textContent = currentLanguage === 'en' ? 'Checking…' :
currentLanguage === 'bg' ? 'Проверка…' :
'Vérification…';
const isPhish = await checkPhishing(url);
if (isPhish) {
resultDiv.textContent = currentLanguage === 'en' ? '⚠️ Dangerous/phishing site!' :
currentLanguage === 'bg' ? '⚠️ Опасен/фишинг сайт!' :
'⚠️ Site de phishing dangereux !';
resultDiv.className = "p-4 bg-red-900 rounded-lg";
} else {
resultDiv.textContent = currentLanguage === 'en' ? '✅ The site appears safe.' :
currentLanguage === 'bg' ? '✅ Сайтът изглежда безопасен.' :
'✅ Le site semble sûr.';
resultDiv.className = "p-4 bg-green-900 rounded-lg";
}
resultDiv.style.display = "block";
});
// Particles.js
document.addEventListener("DOMContentLoaded", function () {
if (typeof particlesJS !== "undefined") {
particlesJS('particles-js', {
"particles": {
"number": {
"value": 80,
"density": {
"enable": true,
"value_area": 800
}
},
"color": {
"value": "#00ffee"
},
"shape": {
"type": "circle",
"stroke": {
"width": 0,
"color": "#000000"
},
"polygon": {
"nb_sides": 5
}
},
"opacity": {
"value": 0.5,
"random": false,
"anim": {
"enable": false,
"speed": 1,
"opacity_min": 0.1,
"sync": false
}
},
"size": {
"value": 3,
"random": true,
"anim": {
"enable": false,
"speed": 40,
"size_min": 0.1,
"sync": false
}
},
"line_linked": {
"enable": true,
"distance": 150,
"color": "#00ffee",
"opacity": 0.4,
"width": 1
},
"move": {
"enable": true,
"speed": 2,
"direction": "none",
"random": false,
"straight": false,
"out_mode": "out",
"bounce": false,
"attract": {
"enable": false,
"rotateX": 600,
"rotateY": 1200
}
}
},
"interactivity": {
"detect_on": "canvas",
"events": {
"onhover": {
"enable": true,
"mode": "grab"
},
"onclick": {
"enable": true,
"mode": "push"
},
"resize": true
},
"modes": {
"grab": {
"distance": 140,
"line_linked": {
"opacity": 1
}
},
"bubble": {
"distance": 400,
"size": 40,
"duration": 2,
"opacity": 8,
"speed": 3
},
"repulse": {
"distance": 200,
"duration": 0.4
},
"push": {
"particles_nb": 4
},
"remove": {
"particles_nb": 2
}
}
},
"retina_detect": true
}, function() {
console.log('Particles.js initialized');
});
}
});
</script>
<script>
// Check if chatbot iframe loaded successfully
function checkChatbotStatus() {
const chatbotIframe = document.querySelector('#cybersec-chatbot iframe');
const fallback = document.getElementById('chatbot-fallback');
// First check if iframe exists
if (!chatbotIframe) {
fallback.classList.remove('hidden');
return;
}
// Check if iframe loaded successfully
chatbotIframe.onload = function() {
fallback.classList.add('hidden');
};
chatbotIframe.onerror = function() {
fallback.classList.remove('hidden');
};
// Fallback check after 5 seconds
setTimeout(function() {
try {
// Try to access iframe content (will throw error if cross-origin)
const iframeDoc = chatbotIframe.contentDocument || chatbotIframe.contentWindow.document;
// If we got here, iframe loaded
fallback.classList.add('hidden');
} catch (e) {
// If error accessing, show fallback
fallback.classList.remove('hidden');
}
}, 5000);
}
// Initialize when page loads
document.addEventListener('DOMContentLoaded', checkChatbotStatus);
// Re-check when language changes
function changeLanguage(lang) {
currentLanguage = lang;
document.querySelectorAll('[data-i18n]').forEach(element => {
const key = element.getAttribute('data-i18n');
if (translations[lang][key]) {
if (element.tagName === 'INPUT' || element.tagName === 'TEXTAREA') {
element.placeholder = translations[lang][key];
} else {
element.innerHTML = translations[lang][key];
}
}
});
checkChatbotStatus(); // Re-check chatbot status on language change
}
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=stellababy2004/cyber" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>