Was macht perfex-crm-guardrails?
9 versteckte Perfex CRM-Modul-Regeln, die 2026 nicht gebrochen werden dürfen – Beste Entwickler-Sicherheitscheckliste
Warum diese Regeln?
Perfex CRM ist ein leistungsstarkes System, aber viele Entwickler stoßen auf unerwartete Fehler, wenn sie Module entwickeln. Diese 9 Regeln sind die häufigsten versteckten Fallstricke, die zu Datenverlust, Sicherheitslücken oder Inkompatibilitäten führen.
Die 9 Regeln
- Verwende immer
$this->db->escape()– Niemals Benutzereingaben direkt in SQL-Abfragen einfügen. - Nutze die systemeigenen Hooks – Überschreibe keine Kernfunktionen ohne Verwendung von
hooks::do_action(). - Überprüfe die Kompatibilität mit der aktuellen Perfex-Version – Führe vor der Installation einen Versionscheck durch.
- Verwende
perfex_module_name()für Modul-Instanzen – Vermeide direkte globale Variablen. - Behandle Datei-Uploads sicher – Validierung von Dateitypen und -größen über
move_uploaded_file()hinaus. - Räume nach der Deinstallation auf – Entferne alle erstellten Datenbanktabellen und -optionen.
- Teste mit mehreren Benutzerrollen – Stelle sicher, dass Admin-, Mitarbeiter- und Kundenberichte korrekt funktionieren.
- Dokumentiere alle Hooks und Filter – Andere Entwickler müssen wissen, welche Erweiterungspunkte vorhanden sind.
- Verwende die systemeigene Session-Verwaltung –
$this->session->set_userdata()statt eigener Cookies.
Beispiel für eine sichere Modul-Initialisierung
if (!defined('BASEPATH')) exit('No direct script access allowed');
class My_module extends App_Module {
public function __construct() {
parent::__construct();
$this->module_name = 'my_module';
$this->module_version = '1.0.0';
}
public function activate() {
// Tabellen erstellen
$this->db->query("CREATE TABLE IF NOT EXISTS `" . db_prefix() . "_my_table` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=" . $this->db->char_set . ";");
return true;
}
public function deactivate() {
// Tabellen entfernen
$this->db->query("DROP TABLE IF EXISTS `" . db_prefix() . "_my_table`");
return true;
}
}
Nächste Schritte
Integriere diese Checkliste in deinen Entwicklungs-Workflow. Verwende sie als Grundlage für Code-Reviews und vor jedem Deployment. So vermeidest du die häufigsten Fehler und stellst eine stabile Perfex CRM-Umgebung sicher.