Sicherheits-API

Die SLAED CMS Sicherheits-API bietet umfassenden Schutz vor gängigen Web-Schwachstellen, einschließlich SQL-Injection, XSS, CSRF und mehr.

Eingabevalidierung

SLAED CMS bietet robuste Eingabevalidierung durch die getVar-Funktion und zusätzliche Filterfunktionen:

// String auf Sicherheit analysieren
function analyze($string) {
    return preg_replace('#[^a-zA-Z0-9_-]#', '', $string);
}

// XSS-Schutz
function xss_clean($string) {
    return htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
}

// HTML-Inhalt filtern
function filter_html($html, $allowed_tags = '<p><br><strong><em><u><a><img><ul><ol><li>') {
    return strip_tags($html, $allowed_tags);
}

CSRF-Schutz

Der Schutz vor Cross-Site Request Forgery wird durch Token-Generierung und -Verifizierung implementiert:

// CSRF-Token generieren
function generate_csrf_token() {
    if (!isset($_SESSION['csrf_token'])) {
        $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
    }
    return $_SESSION['csrf_token'];
}

// CSRF-Token verifizieren
function verify_csrf_token($token) {
    return isset($_SESSION['csrf_token']) && hash_equals($_SESSION['csrf_token'], $token);
}

// CSRF-Token Formularfeld
function csrf_token_field() {
    return '<input type="hidden" name="csrf_token" value="'.generate_csrf_token().'">';
}

// Verwendung in Formularen
echo '<form method="post">';
echo csrf_token_field();
echo '<input type="text" name="title">';
echo '<input type="submit" value="Absenden">';
echo '</form>';

// Verifizierung bei der Verarbeitung
if (!verify_csrf_token(getVar('post', 'csrf_token', 'text'))) {
    die('CSRF-Token-Verifizierung fehlgeschlagen');
}

Captcha-Integration

Integration mit Google reCAPTCHA für Bot-Schutz:

// Captcha-HTML abrufen
function getCaptcha($level) {
    global $conf;
    if ($conf['gfx_chk'] >= '1' && ($level == 2 || ($level == 1 && !is_user()))) {
        // Google reCAPTCHA v3
        $html = '';
        $html .= '';
        $html .= '';
        return $html;
    }
    return '';
}

// Captcha verifizieren
function checkCaptcha($level) {
    global $conf;
    if ($conf['gfx_chk'] >= '1' && ($level == 2 || ($level == 1 && !is_user()))) {
        $response = getVar('post', 'recaptcha', 'text');
        // Mit Google-API verifizieren
        return verify_recaptcha($response);
    }
    return true;
}

XSS-Schutz

Mehrere Schutzschichten gegen XSS sind implementiert:

// Automatische HTML-Maskierung in Vorlagen
$title = xss_clean($title);

// Inhaltsfilterung für benutzergenerierte Inhalte
$filtered_content = filter_html($user_content);

// Ausgabekodierung
echo htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8');

Sitzungssicherheit

Sichere Sitzungsverwaltungsfunktionen:

// Sichere Sitzungsinitialisierung
function init_secure_session() {
    session_start();
    
    // Sitzungs-ID regelmäßig neu generieren
    if (!isset($_SESSION['initiated'])) {
        session_regenerate_id(true);
        $_SESSION['initiated'] = true;
    }
    
    // IP-Adressenvalidierung
    if (isset($_SESSION['user_ip']) && $_SESSION['user_ip'] !== getIp()) {
        session_destroy();
        return false;
    }
    $_SESSION['user_ip'] = getIp();
    
    // User-Agent-Validierung
    if (isset($_SESSION['user_agent']) && $_SESSION['user_agent'] !== getUserAgent()) {
        session_destroy();
        return false;
    }
    $_SESSION['user_agent'] = getUserAgent();
    
    return true;
}

// Sichere Cookies setzen
setCookies($name, $value, $expire_time);

// Client-IP-Adresse abrufen
$ip = getIp();

// User-Agent abrufen
$user_agent = getUserAgent();

Die Sicherheits-API stellt sicher, dass SLAED CMS-Anwendungen vor den häufigsten Web-Schwachstellen geschützt sind und gleichzeitig Entwicklern die einfache Nutzung ermöglichen.