diff --git a/latte/cs/safety-first.texy b/latte/cs/safety-first.texy index ff82aebe68..fc11c21a6c 100644 --- a/latte/cs/safety-first.texy +++ b/latte/cs/safety-first.texy @@ -202,29 +202,29 @@ Automatické escapování bez znalosti kontextu je poněkud zavádějící a **v
```twig .{file:Twig šablona, jak ji vidí samotný Twig} -░░░░░░░░░░░░░░░░░{{ text }}░░░░░░░ -░░░░░░░░░░░░░░░░{{ text }}░░░░░░░░░ -░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ text }}░░░░░░░░░ -░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ text }}░░░░░░░░ -░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ text }}░░░░░░ -░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ text }}░░ -░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ text }}░░░░░░░░░ -░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ text }}░░░░░░░░░ -░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ text }}░░░░░░░░░░░ -░░░░░░░░░░░░░░░░░░░░{{ text }}░░░░ +░░░░░░░░░░░░░░░░░{{ foo }}░░░░░░░ +░░░░░░░░░░░░░░░░{{ foo }}░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ foo }}░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ foo }}░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ foo }}░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ foo }}░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ foo }}░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ foo }}░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ foo }}░░░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░{{ foo }}░░░░ ``` ```twig .{file:Twig šablona, jak ji vidí designer} -- v textu: {{ text }} -- v tagu: -- v atributu: -- v atributu bez uvozovek: -- v atributu obsahujícím URL: -- v atributu obsahujícím JavaScript: -- v atributu obsahujícím CSS: -- v JavaScriptu: -- v CSS: -- v komentáři: +- v textu: {{ foo }} +- v tagu: +- v atributu: +- v atributu bez uvozovek: +- v atributu obsahujícím URL: +- v atributu obsahujícím JavaScript: +- v atributu obsahujícím CSS: +- v JavaScriptu: +- v CSS: +- v komentáři: ```
@@ -233,6 +233,36 @@ Naivní systémy pouze mechanicky převádějí znaky `< > & ' "` na HTML entity Latte šablonu vidí stejně jako vy. Chápe HTML, XML, rozeznává značky, atributy atd. A díky tomu rozlišuje jednotlivé kontexty a podle nich ošetřuje data. Nabízí tak opravdu efektivní ochranu proti kritické zranitelnosti Cross-site Scripting. +
+ +```latte .{file:Latte šablona, jak ji vidí Latte} +░░░░░░░░░░░{$foo} +░░░░░░░░░ +░░░░░░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ +░░░░░░░░░░░░░░░░░ +░░░░░░░░░ +░░░░░░░░░░░░░░░ +``` + +```latte .{file:Latte šablona, jak ji vidí designer} +- v textu: {$foo} +- v tagu: +- v atributu: +- v atributu bez uvozovek: +- v atributu obsahujícím URL: +- v atributu obsahujícím JavaScript: +- v atributu obsahujícím CSS: +- v JavaScriptu: +- v CSS: +- v komentáři: +``` + +
+ Živá ukázka =========== diff --git a/latte/en/safety-first.texy b/latte/en/safety-first.texy index 172c583ca6..4bb3b4e578 100644 --- a/latte/en/safety-first.texy +++ b/latte/en/safety-first.texy @@ -203,29 +203,29 @@ Templating systems like Twig, Laravel Blade and others don't see any HTML struct
```twig .{file:Twig template as seen by Twig himself} -░░░░░░░░░░░░░░░░░{{ text }}░░░░░░░ -░░░░░░░░░░░░░░░░{{ text }}░░░░░░░░░ -░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ text }}░░░░░░░░░ -░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ text }}░░░░░░░░ -░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ text }}░░░░░░ -░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ text }}░░ -░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ text }}░░░░░░░░░ -░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ text }}░░░░░░░░░ -░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ text }}░░░░░░░░░░░ -░░░░░░░░░░░░░░░░░░░{{ text }}░░░░ +░░░░░░░░░░░░░░░░░{{ foo }}░░░░░░░ +░░░░░░░░░░░░░░░░{{ foo }}░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ foo }}░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ foo }}░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ foo }}░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ foo }}░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ foo }}░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ foo }}░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░{{ foo }}░░░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░{{ foo }}░░░░ ``` ```twig .{file:Twig template as the designer sees it} -- in text: {{ text }} -- in tag: -- in attribute: -- in unquoted attribute: -- in attribute containing URL: -- in attribute containing JavaScript: -- in attribute containing CSS: -- in JavaScriptu: -- in CSS: -- in comment: +- in text: {{ foo }} +- in tag: +- in attribute: +- in unquoted attribute: +- in attribute containing URL: +- in attribute containing JavaScript: +- in attribute containing CSS: +- in JavaScriptu: +- in CSS: +- in comment: ```
@@ -234,6 +234,36 @@ Naive systems just mechanically convert `< > & ' "` characters to HTML entities, Latte sees the template the same way you do. It understands HTML, XML, recognizes tags, attributes, etc. And because of this, it distinguishes between contexts and treats data accordingly. So it offers really effective protection against the critical Cross-site Scripting vulnerability. +
+ +```latte .{file:Latte template as seen by Latte himself} +░░░░░░░░░░░{$foo} +░░░░░░░░░░ +░░░░░░░░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ +░░░░░░░░░░░░░░░░░░ +░░░░░░░░░░ +░░░░░░░░░░░░░░ +``` + +```latte .{file:Latte template as the designer sees it} +- in text: {$foo} +- in tag: +- in attribute: +- in unquoted attribute: +- in attribute containing URL: +- in attribute containing JavaScript: +- in attribute containing CSS: +- in JavaScriptu: +- in CSS: +- in comment: +``` + +
+ Live Demonstration ==================