Přejít k navigační liště

Zdroják » Zprávičky » Vyšel Nette Framework 2.0 final

Vyšel Nette Framework 2.0 final

Zprávičky Různé

Nálepky:

Po letech vývoje, po alfa a beta verzích a třech release kandidátech, Nette Foundation s hrdostí oznamuje, že vyšla nová verze jednoho z nejpopulárnějších frameworků u nás: Nette Framework 2.0 final.

Nette Framework 2 obsahuje řadu novinek, z nichž některé jsou světově unikátní:

  • podpora Dependency Injection, používaná v celém frameworku
  • nová databázová vrstva s integrovaným úžasným NotORM
  • kompletně přepsané Latte, velmi šikovný šablonovací jazyk
  • přizpůsobitelná Laděnka, malý pomocník každého vývojáře s množstvím předdefinovaných pa­nelů
  • nový značkovací jazyk NEON
  • zcela nové možnosti konfigurace aplikace a frameworku
  • Nette nadále zůstává jedním z nejlépe zabezpečených frameworků na světě

 …a mnoho a mnoho dalších vylepšení v každé části frameworku.

Nette Framework také přichází s novou a dokumentací. Jak začít? Stáhněte si jej a zkuste Quick Start.

Příjemný vývoj s Nette dvojkou!

Komentáře

Subscribe
Upozornit na
guest
17 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Já

Nette prošlo bezpečnostním auditem, jako třeba Symfony (http://symfony.com/blog/symfony2-security-audit), nebo to je jenom proklamace autorů? (že je nový, světově unikátní, úžasný, šikovný o tom už nikdo pochybovat přeci nemůže ;))

David Grudl

Jedna věc je bezpečnost frameworku jako takového (což je pro Nette zásadní priorita a pokud se nepletu, za jeho existenci nebyla hlášena žádná bezpečnostní chyba), druhá věc je bezpečnost aplikací v Nette vytvářených. Tady hraje zásadní roli Latte filtr, který používá kontextově senzitivní escapování, což je na poli PHP skutečně unikátní vlastnost, díky které jsou aplikace psané v Nette odolné vůči XSS. Případně Nette Database, který aktivně předchází SQL injection.

Pochopitelně to neznamená, že v Nette nejde napsat děravá aplikace. Rozdíl je v tom, že programátor nemusí kvůli bezpečnost vynakládat nadstandardní úsilí.

Stavinoha

Že nebyla nalezena bezpečnostní chyba je skoro podezřelejší než kdyby tam nalezena byla ;) XSS, SQL inj., ošetřují snad všechny frameworky bez nadstandardního úsilí. Jediné co je opravdu navíc je to kontextové escapování. Trochu magie. Hledal jsem v dokumentaci a jediný co jsem se dověděl je, že se nemám starat, že to prostě magicky funguje vždy všude za všech okolností. Co k tomu dodat.

David Grudl

O kontextově sensitivním escapováni se můžete dočíst buď v dokumentaci http://doc.nette.org/cs/templating#toc-context-aware-escaping nebo třeba na blogu Jakuba Vrány http://php.vrana.cz/kontextove-citlive-osetrovani-vystupu.php

Mastodont

… Že v Latte není potřeba nic manuálně ošetřovat. Vše se děje automaticky, správně a důsledně. Nemusíte se bát bezpečnostní děr. …

:-)

Ludvík 763.

kdybys uměl php, mužes se podívat do zdrojoveho koudu

Jakub Vrána

Jak ošetřuje XSS třeba takový Zend Framework? Nijak – musíte ručně zavolat funkci $this->escape(). Jednou na to zapomenete a XSS je na světě. Korunu tomu všemu nasazuje tím, že i když tuto funkci použijete, tak se XSS nutně nezbavíte, např. v takovémto zdánlivě neškodném, validním a pečlivě ošetřeném kódu:

<span title='<?php echo $this->escape($this->userInput); ?>'>Test</span>

Stačí, když útočník podstrčí ' onmouseover='a­lert(/XSS/) a Zend Framework si na tom vyláme zuby.

Takže buď musíte vyvinout úsilí psaním vlastní ošetřovací funkce a velmi obezřetným vytvářením šablon nebo musíte použít externí šablony – třeba právě ty z Nette.

nikolai

Ahoj Jakube, zdá se, že tvůrci ZF na tuto „feature“ moc pyšní nejsou a v ZF2 Roadmap (http://framework.zend.com/wiki/display/ZFDEV2/Zend_View+2.0) se objevuje zmínka, že by logika měla být naruby – tedy autoescape by default a raw values skrz volání metody. Aktuálně je venku beta2, která tuto změnu již implementuje.

Jakub Vrána

Logika popsaná v Roadmap je zvrácená: něco ošetřené automaticky je, něco jiného ne a když chci přistoupit k neošetřené verzi něčeho, co se automaticky ošetřuje, tak abych si na to napsal metodu. Navíc problém s apostrofy zůstává nevyřešen.

Navíc současná implementace je tragédie – klasické předčasné ošetřování. Co asi vypíše následující kód?

$view->a = 'a';
$view->a .= '<';
$view->a .= '5';
echo $view->a;

Hádáte správně, že a&amp;lt;5, po vyrenderování do HTML tedy a&lt;5.

Z mého pohledu je chování ZF2 ještě horší než ZF1.

Tomáš Fejfar

S tímhle bohužel nemůžu než souhlasit. Je to naprosto otřesné.

<?php
echo $this->variable;              //escaped - view variable
echo $variable                     //escaped - auto-exported view variable (wtf?!)
$variable2 = 'alert("xss")';
echo $variable2                    //not escaped - local variable
foreach ($array as $item) {
    echo $item                     //not escaped - local variable
}

Doufám (a rozhodně to zmíním na mailing listu), že se tohle do finální verze opravdu nedostane!

sidik

Takže Symfony2 je bezpečné jen proto, že prošlo auditem nějaké německé firmy, kterou navíc nikdo nezná? Tak to jo. Ale takovej audit si dokážu zaplatit taky, třeba na ten otřesnej Zend.

A ne, nepoužívám Nette. Nepřišel jsem mu na chuť. Ale v práci jsem ho jednu dobu používat musel a co se bezpečnosti týče, je na tom líp než většina ostatních.

Jakub Vrána

Audit proběhl u SektionEins, což není nějaká neznámá německá firma. Stojí za ní Stefan Esser, což je zdaleka největší odborník na bezpečnost PHP na světě. Z jeho nedávných úlovků např. odhalený HTTP Response Splitting v jádře PHP. Mnozí budou znát i projekt SektionEins Suhosin nebo starší Month of PHP Security (kam jsem dva články napsal i já).

Takže než něco příště napíšete o neznámých firmách, tak si nejprve zjistěte, která firma na bezpečnost PHP je ta zdaleka nejznámější a nejpovolanější.

značkovač

Nějak pořád ne a ne najít ten nový značkovací jazyk NEON. Mě to tady přijde podobné jako ini, yaml apod., značky jsou kde?

Mastodont

Však Neon je upravený Yaml.

wpx

Pokud se chcete dozvědět o neonu víc, doporučuji http://ne-on.org/.

blizz

mate tam nespravne okomentovanu triedu NeonEntity:

The exception that indicates error of NEON decoding.

Tomáš Fejfar

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.