Security Features
NexaModel secara otomatis memvalidasi semua input untuk mencegah SQL injection:
NexaModel · Storage() · NexaDb
$this->Storage('news')->where()->first();Input Validation
NexaModel secara otomatis memvalidasi semua input untuk mencegah SQL injection:
// Aman - input akan divalidasi
$users = $this->Storage('users')
->where('name', 'LIKE', '%' . $userInput . '%')
->get();
Column Validation
Method ini ada di NexaModel, bukan di NexaController. Pakai instance model (subclass Anda, (new NexaModel()), atau rantai $this->Storage('tabel') yang mengembalikan NexaModel).
$validationResult = (new \App\System\NexaModel())->testColumnValidation([
'name',
'email',
'UPPER(name) AS name_upper',
'COUNT(*) AS total'
]);
(new \App\System\NexaModel())->testColumnValidationAndDisplay([
'name',
'invalid_function()',
'CASE WHEN status = "active" THEN 1 ELSE 0 END AS is_active'
]);
Allowed Functions
NexaModel hanya mengizinkan fungsi SQL yang aman:
// Fungsi yang diizinkan
$allowedFunctions = [
'UPPER', 'LOWER', 'DATE', 'YEAR', 'MONTH', 'DAY',
'COUNT', 'SUM', 'AVG', 'MAX', 'MIN', 'RAND',
'CONCAT', 'SUBSTRING', 'TRIM', 'LENGTH',
'DATE_FORMAT', 'CASE', 'WHEN', 'THEN', 'ELSE', 'END',
// ... dan banyak lagi
];
Secret Key untuk Encoding
$decoder = (new \App\System\NexaModel())->secretKey('your_secret_key_2025');
// Digunakan untuk encoding/decoding data sensitif (NexaDecode)
Lanjut
Topik sebelumnya: Cache (kompatibilitas API). Topik berikutnya: Performance Monitoring. Lihat juga Models, Events, Helper & template, daftar dokumentasi.