Sicherheits-API
Die SLAED CMS Sicherheits-API bietet umfassenden Schutz vor gängigen Web-Schwachstellen, einschließlich SQL-Injection, XSS, CSRF und mehr.
Inhaltsverzeichnis
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.