admin / AirportCyberSimulator
publicAirport Cyber Attack Simulation Application
AirportCyberSimulator / airport-cyber-sim-v2 / backend / static / index.html
11064 B · main
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" /> <title>Airport Cyber Resilience Simulator · V2</title> <!-- All libraries vendored locally: the container needs no runtime internet --> <script src="vendor/react.production.min.js"></script> <script src="vendor/react-dom.production.min.js"></script> <script src="vendor/htm.js"></script> <script src="vendor/gsap.min.js"></script> <link rel="preconnect" href="https://fonts.googleapis.com" /> <link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=Rajdhani:wght@400;500;600;700&display=swap" rel="stylesheet" /> <link rel="stylesheet" href="styles.css" /> </head> <body> <div id="root"></div> <!-- ================= SVG ICON SPRITE ================= --> <svg width="0" height="0" style="position:absolute" aria-hidden="true"><defs> <g id="icon-shield"><path d="M24 3l16 6v11c0 10-7 18-16 21-9-3-16-11-16-21V9z" fill="none" stroke="currentColor" stroke-width="2.5"/><path d="M16 24l6 6 10-12" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/></g> <g id="icon-reset"><path d="M4 12a8 8 0 1 1 2.3 5.6M4 12V6M4 12h6" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></g> <g id="icon-speaker-on"><path d="M4 9v6h4l6 5V4L8 9zM18 8a6 6 0 010 8M21 5a10 10 0 010 14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></g> <g id="icon-speaker-off"><path d="M4 9v6h4l6 5V4L8 9zM17 9l6 6m0-6l-6 6" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></g> <g id="icon-phone"><path d="M6 4h5l2 6-3 2a12 12 0 006 6l2-3 6 2v5a2 2 0 01-2 2A18 18 0 014 6a2 2 0 012-2z" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round"/></g> <g id="icon-email"><rect x="4" y="7" width="28" height="20" rx="3" transform="scale(0.75) translate(4,3)" fill="none" stroke="currentColor" stroke-width="2.6"/><path d="M7 9l10 8 10-8" fill="none" stroke="currentColor" stroke-width="2.2"/></g> <!-- 26 node icons (48x48) --> <g id="node-atc"><path d="M24 6v20M14 26h20l-3 16H17z" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linejoin="round"/><circle cx="24" cy="7" r="3" fill="currentColor"/></g> <g id="node-runway"><path d="M20 8h8l6 34H14zM24 8v34M18 20h12M17 30h14" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round"/></g> <g id="node-comms"><path d="M24 14a10 10 0 00-10 10M24 8a16 16 0 00-16 16M24 27v13" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round"/><circle cx="24" cy="24" r="3" fill="currentColor"/></g> <g id="node-power"><path d="M26 6L12 27h10l-2 15 16-22H26z" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linejoin="round"/></g> <g id="node-ev"><rect x="12" y="10" width="16" height="30" rx="2" fill="none" stroke="currentColor" stroke-width="2.2"/><path d="M20 16l-3 7h5l-3 7M28 18h4v8a3 3 0 01-6 0" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></g> <g id="node-gps"><path d="M24 6a10 10 0 00-10 10c0 8 10 20 10 20s10-12 10-20A10 10 0 0024 6z" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round"/><circle cx="24" cy="16" r="3.5" fill="currentColor"/></g> <g id="node-security"><path d="M24 6l14 5v9c0 9-6 15-14 18-8-3-14-9-14-18v-9z" fill="none" stroke="currentColor" stroke-width="2.4"/><circle cx="24" cy="21" r="4" fill="none" stroke="currentColor" stroke-width="2.2"/><path d="M24 25v6" stroke="currentColor" stroke-width="2.2"/></g> <g id="node-identity"><circle cx="24" cy="18" r="7" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M12 40c0-7 5-11 12-11s12 4 12 11" fill="none" stroke="currentColor" stroke-width="2.4"/></g> <g id="node-boarding"><rect x="10" y="14" width="28" height="20" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M10 22h28M18 28h6" stroke="currentColor" stroke-width="2.2"/></g> <g id="node-door"><rect x="14" y="8" width="20" height="34" rx="2" fill="none" stroke="currentColor" stroke-width="2.4"/><circle cx="29" cy="25" r="1.8" fill="currentColor"/></g> <g id="node-cctv"><path d="M8 16l24-6 2 7-24 6zM12 22l3 8M28 14l3 5 5-2" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round"/><circle cx="14" cy="34" r="4" fill="none" stroke="currentColor" stroke-width="2.2"/></g> <g id="node-loading"><path d="M8 30h20V16H8zM28 22h6l6 6v2H28z" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round"/><circle cx="15" cy="34" r="3" fill="none" stroke="currentColor" stroke-width="2.2"/><circle cx="33" cy="34" r="3" fill="none" stroke="currentColor" stroke-width="2.2"/></g> <g id="node-services"><circle cx="24" cy="15" r="6" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M12 40c0-7 5-12 12-12s12 5 12 12M32 20l4-2M16 20l-4-2" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g> <g id="node-loyalty"><path d="M24 8l4 9 10 1-7 7 2 10-9-5-9 5 2-10-7-7 10-1z" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round"/></g> <g id="node-border"><circle cx="24" cy="24" r="16" fill="none" stroke="currentColor" stroke-width="2.2"/><path d="M8 24h32M24 8c5 6 5 26 0 32M24 8c-5 6-5 26 0 32" fill="none" stroke="currentColor" stroke-width="1.8"/></g> <g id="node-checkin"><rect x="12" y="10" width="24" height="30" rx="2" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M18 18h12M18 24h12M18 30h8" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g> <g id="node-hvac"><rect x="8" y="12" width="32" height="24" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M14 20h6M28 20h6M14 28h20" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g> <g id="node-ticketing"><ellipse cx="24" cy="14" rx="14" ry="5" fill="none" stroke="currentColor" stroke-width="2.2"/><path d="M10 14v20c0 3 6 5 14 5s14-2 14-5V14M10 24c0 3 6 5 14 5s14-2 14-5" fill="none" stroke="currentColor" stroke-width="2.2"/></g> <g id="node-retail"><path d="M10 16h28l-3 22H13zM16 16a8 8 0 0116 0" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linejoin="round"/></g> <g id="node-baggage"><rect x="14" y="16" width="20" height="24" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M19 16v-4a3 3 0 013-3h4a3 3 0 013 3v4M22 22v12M26 22v12" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g> <g id="node-logistics"><path d="M6 30h20V16H6zM26 22h8l6 6v2H26z" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round"/><circle cx="14" cy="34" r="3" fill="none" stroke="currentColor" stroke-width="2.2"/><circle cx="32" cy="34" r="3" fill="none" stroke="currentColor" stroke-width="2.2"/></g> <g id="node-terminal"><rect x="12" y="8" width="24" height="32" rx="2" fill="none" stroke="currentColor" stroke-width="2.4"/><circle cx="30" cy="24" r="1.8" fill="currentColor"/><path d="M17 14h6" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g> <g id="node-wifi"><path d="M8 20a24 24 0 0132 0M14 27a15 15 0 0120 0M20 34a6 6 0 018 0" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round"/><circle cx="24" cy="39" r="2.2" fill="currentColor"/></g> <g id="node-display"><rect x="7" y="10" width="34" height="22" rx="2" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M14 18h10M14 24h20M20 32v6M28 38h-8" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g> <g id="node-speaker"><path d="M10 19v10h6l9 7V12l-9 7zM30 18a8 8 0 010 12" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round" stroke-linecap="round"/></g> <g id="node-mobile"><rect x="16" y="6" width="16" height="36" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M21 10h6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/><circle cx="24" cy="36" r="1.6" fill="currentColor"/></g> <!-- 9 ingress method icons --> <g id="ing-usb_drive"><rect x="18" y="18" width="12" height="24" rx="2" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M20 18v-6h8v6M24 6v6" stroke="currentColor" stroke-width="2.4"/><path d="M22 26v8M26 26v8" stroke="currentColor" stroke-width="2"/></g> <g id="ing-unlocked_padlock"><rect x="12" y="22" width="24" height="18" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M16 22v-4a8 8 0 0115-4" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round"/><circle cx="24" cy="31" r="2.5" fill="currentColor"/></g> <g id="ing-phishing_email"><rect x="8" y="12" width="32" height="24" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M8 14l16 12 16-12" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M30 30l4 4m0-4l-4 4" stroke="currentColor" stroke-width="2.4" stroke-linecap="round"/></g> <g id="ing-rogue_smartphone"><rect x="16" y="6" width="16" height="36" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M21 10h6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/><path d="M30 16l6-6m-6 0l6 6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></g> <g id="ing-vpn_breach"><path d="M24 6l14 5v9c0 9-6 15-14 18-8-3-14-9-14-18v-9z" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M17 18l14 12M31 18L17 30" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g> <g id="ing-password_crack"><rect x="12" y="22" width="24" height="18" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M17 22v-5a7 7 0 0114 0v5" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M24 28v6" stroke="currentColor" stroke-width="2.4" stroke-linecap="round"/><path d="M8 40l6-4" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></g> <g id="ing-rogue_router"><rect x="8" y="24" width="32" height="12" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><circle cx="14" cy="30" r="1.6" fill="currentColor"/><path d="M24 24v-6M24 18a6 6 0 00-6-6M24 18a6 6 0 016-6M30 30h4" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g> <g id="ing-cloud_leak"><path d="M14 26a7 7 0 011-14 9 9 0 0117 2 6 6 0 01-1 12H15" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round"/><path d="M18 30v6M24 32v7M30 30v6" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g> <g id="ing-malware_bug"><circle cx="24" cy="24" r="9" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M24 15v-5M14 18l-4-3M34 18l4-3M13 24H7M35 24h6M15 32l-4 4M33 32l4 4M24 33v6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></g> </defs></svg> <script src="app.js"></script> </body> </html> |