Výsledky mini soutěže o bezpečném programování
V minulém článku o bezpečném programování v Drupalu jsme vyhlásili minisoutěž. Dnes přinášíme výsledky a výherce.
Otázka zněla:
<?php
$query = db_query("SELECT * FROM {node} n WHERE n.nid = %d OR n.type = '%s' OR n.title LIKE '%%%s%%'", $nid, $string, $string);
?>
je správně, přesto však obsahuje jednu bezpečnostní chybu, úplně nesouvisející s SQL Injection. Najdete ji? Pokud ano, napište nám kontaktním formulářem (ne do komentářů!). Z došlých odpovědí vylosujeme dva výherce, kteří získají tričko „Drupal 6 cheat shirt“.
Odpověď
<?php
$query = db_query(db_rewrite_sql("SELECT * FROM {node} n WHERE n.nid = %d OR n.type = '%s' OR n.title LIKE '%%%s%%'"), $nid, $string, $string);
?>
Správně by měl dotaz vypadat takto. Všimněte si použití funkce db_rewrite_sql. Ta zajistí, že v případě, že používáte nějaký modul na omezení přístupu k uzlům, Drupal Váš dotaz přepíše tak, aby se tyto práva respektovaly.
To samozřejmě není nutné vždy, nicméně je nutné to mít na paměti. Zároveň je to nutná podmínka pro použití modulů jako Domain Access.
Na otázku neodpovědělo správně mnoho lidí, toto je seznam výherců trička Drupal 6 Cheat Sheet:- mathiaz
- paiti @ sychrov…
- havran
- jerry
Gratulujeme a přihlašte se – tričko Vám můžeme předat kdekoliv v Praze, Ústí nad Labem a možná i poslat poštou.

Len pre info, v D7 uz tato
Len pre info, v D7 uz tato funkcia nebude.
Poslat nový komentář