<?php if (!defined('DASHBOARD_ROOT')) { http_response_code(403); exit; } RBAC::enforce('view.security'); require_once DASHBOARD_ROOT . '/modules/security/ghostwall_status.php'; require_once __DIR__.'/../modules/security/sec_data_handler.php'; ?> <div class="workspace" id="ws-security"> <div class="sub-tabs" id="sec-tabs"> <button class="sub-tab active" data-panel="sec-overview">Overview</button> <button class="sub-tab" data-panel="sec-ghostwall">GhostWall</button> <button class="sub-tab" data-panel="sec-honeypots">Honeypots</button> <button class="sub-tab" data-panel="sec-trust">Trust Monitor</button> <button class="sub-tab" data-panel="sec-master">Master Panel</button> <button class="sub-tab" data-panel="sec-scraping">Anti-Scraping</button> <button class="sub-tab" data-panel="sec-integrity">Code Integrity</button> <button class="sub-tab" data-panel="sec-access">Direct Access</button> <button class="sub-tab" data-panel="sec-audit">Audit Log</button> </div> <div class="sub-panel active" id="sec-overview"><?php require_once __DIR__.'/../modules/security/overview_panel.php'; ?></div> <div class="sub-panel" id="sec-ghostwall"><?= renderGhostWall() ?></div> <div class="sub-panel" id="sec-honeypots"><?php require_once __DIR__.'/../modules/security/honeypots_panel.php'; ?></div> <div class="sub-panel" id="sec-trust"></div> <div class="sub-panel" id="sec-master"></div> <div class="sub-panel" id="sec-scraping"><?php require_once __DIR__.'/../modules/security/scraping_panel.php'; ?></div> <div class="sub-panel" id="sec-integrity"><?php require_once __DIR__.'/../modules/security/integrity_panel.php'; ?></div> <div class="sub-panel" id="sec-access"><?php require_once __DIR__.'/../modules/security/access_panel.php'; ?></div> <div class="sub-panel" id="sec-audit"><?php require_once __DIR__.'/../modules/security/audit_panel.php'; ?></div> </div> <script src="/assets/js/security.js" nonce="<?= $cspNonce ?? '' ?>"></script>