Dávejte pozor na zabezpečení Drupal stránek
Před pár dny se internetem šířila zpráva, že Jiří Paroubek si založil novou stranu Národní socialisté – levice 21. Což by se normálně přešlo bez povšimnutí. Nicméně strana také spustila nové stránky postavené na redakčním systému Drupal. Bohužel brzy pozorní návštěvníci našli zajímavou chybu. Více se dozvíte v následujícím článku + tip jak se jí vyvarovat na vašich webech.
Drupal je dobrý sluha, ale špatný pán
Nejdříve pár slov k tomu, jak Drupal funguje. Je to v podstatě modulární stavebnice. V základu tak Drupal umí velmi málo, ale lze ho jednoduše rozšiřovat. Díky tomuto řešení na něm mohou běžet malé ale i největší weby na světě (dle statistik Drupal používá 1,8% stránek na světě). V zásadě se tak jedná spíše o pokročilý vývojový framework než obyčejný redakční systém. Tím se dostáváme k problému, že tvůrci webů často nemají dostatečné povědomí o všech aspektech a zásadách vývoje pod Drupalem.
A jako přímo učebnicový příklad slouží stránky nslev21.cz, které měly veřejně přístupné veškeré přihlášky! Každý kdo znal správnou adresu (nslev21.cz/dekujeme/17/XX) mohl snadno zjistit všechny osobní údaje přihlášených osob. Tato chyba byla již opravena, ale údaje jsou stále dostupné v google cache, protože na ně vedla spousta odkazů z diskuzí. Níže přikládám ukázku:
Drupal se standardně chová tak, že všechen obsah je veřejně přístupný. Obsah si tak může prohlížet kdokoliv. Často se na to zapomíná, obzvlášť pokud se jedná o interní obsah.
Jak se této chyby vyvarovat?
V podstatě existuje mnoho řešení. Nejjednodušší je použít modul Content Access , který nám umožní přidělovat oprávnění dle typu obsahu nebo pokročilejší modul Page Manager , který nám umožní definovat pravidla a pak také i následné akce.
Další možností je napsat si vlastní přístupové pravidlo přes hook_node_view. A řešení, které bych v případě nslev21.cz volil já je vygenerování unikátního url řetězce, aby nešlo jednoduše iterováním přijít na ostatní záznamy. Toto řešení má výhodu v tom, že uživatel ke svým údajům má přístup i přes odkaz v emailu apod. bez přihlášení.
Pokud k této oblasti máte jakékoliv relevantní doplnění, prosím napište mi ho v komentářích.
Přidej vlastní názor
Ty