From 0d264d9ed548e804e21425808efe504b758dd943 Mon Sep 17 00:00:00 2001 From: David Grudl Date: Thu, 9 Jan 2025 18:59:53 +0100 Subject: [PATCH] x --- database/cs/security.texy | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/database/cs/security.texy b/database/cs/security.texy index f873a543f8..891f7c6cc3 100644 --- a/database/cs/security.texy +++ b/database/cs/security.texy @@ -113,14 +113,19 @@ Tento útok ukončí původní podmínku pomocí `0)`, připojí vlastní `SELEC Whitelist sloupců ----------------- -Pokud chcete uživateli umožnit volbu sloupců, vždy použijte whitelist: +Pro bezpečnou práci s hodnotami zadanými uživatelem musíme striktně kontrolovat, které sloupce může ovlivnit. Řešením je whitelist - explicitní seznam povolených sloupců: ```php -// ✅ Bezpečné zpracování - pouze povolené sloupce +// Sloupce, které může uživatel upravovat $allowedColumns = ['name', 'email', 'active']; -$values = array_intersect_key($_POST, array_flip($allowedColumns)); -$database->query('INSERT INTO users', $values); +// Odstraníme všechny nepovolené sloupce ze vstupu +$data = array_intersect_key($_POST, $allowedColumns); + +// ✅ Nyní můžeme bezpečně použít v dotazech, jako například: +$database->query('INSERT INTO users', $data); +$table->update($data); +$table->where($data); ```