Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Az első igazán biztonságos és
intuitív sablonrendszer PHP-hez

A weboldalak több mint 27%-a
kritikus sebezhetőségekkel rendelkezik

A weboldalak leggyakoribb kritikus sebezhetősége a Cross-Site Scripting (XSS). Lehetővé teszi a támadó számára, hogy rosszindulatú szkriptet illesszen be egy idegen oldalra, amely a gyanútlan felhasználó böngészőjében fut le. Módosíthatja az oldalt, érzékeny információkat szerezhet, vagy akár ellophatja a felhasználó identitását.

A sablonrendszerek kudarcot vallanak az XSS elleni védekezésben. A Latte az egyetlen rendszer hatékony védelemmel, az úgynevezett kontextusfüggő escapelésnek köszönhetően.

Aki jól védett weboldalt szeretne, az Latte-t használ.

Kvíz: meg tudja védeni magát az XSS sebezhetőség ellen?

Adatforrás: Acunetix Web Vulnerability Report

Példa a $text változó automatikus escapelésére több különböző kontextusban (a felső sablont szerkesztheti):

{var $text = "O'Neill"}
- szövegben: <span>{$text}</span>
- attribútumban: <span title={$text}></span>
- idézőjel nélküli attribútumban: <span title={$text}></span>
- JavaScriptben: <script>var = {$text}</script>
- szövegben: <span>O'Neill</span>
- attribútumban: <span title='O&apos;Neill'></span>
- idézőjel nélküli attribútumban: <span title="O&apos;Neill"></span>
- JavaScriptben: <script>var = "O'Neill"</script>

Egy nyelv, amit jól ismersz

Nem túlzunk. Valóban ismered már a Latte nyelvet. Már tudod, hogyan írj benne kifejezéseket. Pontosan úgy íródnak, mint a PHP-ban. Így nem kell gondolkodnod azon, hogyan írj valamit Latte-ban. Nem kell a dokumentációban keresgélned. Nem kell újabb nyelvet tanulnod. Egyszerűen csak úgy írsz, mint PHP-ban. Többet a Latte szintaxisáról

Ciklus

<ul>
    {foreach $users as $user}
        <li>{$user->name}</li>
    {/foreach}
</ul>

Feltétel

{if $post->status === Status::Published}
    Read post
{elseif count($posts) > 0}
    See other posts
{/if}

Kifejezések

{$product?->getDiscount()}

{$foo[0] + strlen($bar[Bar::Const])}

{array_filter($nums, fn($n) => $n < 100)}

Latte vs Twig

A Latte PHP-n, míg a Twig Pythonon alapul. Egy Latte tervezőnek nem kell folyamatosan két különböző konvenció között váltogatnia. Például a sablonokban for person in people és a PHP-ban foreach $people as $person között. Arra sem kell gondolnia, hol használjon {% %}-t és hol {{ }}-t, mert a Latte-nak egyetlen {...} elválasztója van.

Próbálja ki a Twig sablonok Latte-ba konvertáló eszközt.

<ul>
    {foreach $foo->items as $item}
        <li>{$item->name}</li>
    {/foreach}
</ul>
<ul>
    {% for item in foo.items %}
        <li>{{ item.name }}</li>
    {% endfor %}
</ul>

Takarékos mód, ami lázba hoz

A felhasználók imádják ezt a funkciót. Úgy hívjuk: n:attribútumok. Bármely páros tag, mint például a {if} … {/if}, amely egy HTML elemet burkol, leírható n:if attribútumként. Ez nagyon takarékos írásmódot eredményez. Az attribútumoknak lehetnek inner- és tag- előtagjai is, ekkor a viselkedés az elem belsejére, illetve a nyitó és záró HTML tagre vonatkozik. Többet az n-attribútumokról

N:attribútumok használatával:

<ul n:if="count($menu) > 1" class="menu">
    <li n:foreach="$menu as $item">
        <a n:tag-if="$item->href" href={$item->href}>
            {$item->caption}
        </a>
    </li>
</ul>

És ugyanez nélkülük:

{if count($menu) > 1}
    <ul class="menu">
        {foreach $menu as $item}
            <li>
                {if $item->href}<a href={$item->href}>{/if}
                    {$item->caption}
                {if $item->href}</a>{/if}
            </li>
        {/foreach}
    </ul>
{/if}

A Latte kényezteti a fejlesztőket

Szerkesztés

A Latte natív támogatással rendelkezik a NetBeansben és egy kiváló pluginnal a PhpStormhoz, amely tageket, szűrőket és PHP kódot javasol.

Hibakeresés

Legyen mindig képben. A Tracy plugin minden oldalon tájékoztatja, hogy mely sablonok és milyen változók kerülnek renderelésre.

Új generációs sablonrendszer

A Latte egy új generációs sablonrendszer – érti a HTML nyelvet. Ahol más rendszerek csak karakterhalmazt látnak, ott a Latte HTML elemeket lát. Ezért van két csodálatos funkciója, mint a kontextusfüggő escapelés és az n:attribútumok.

Hogyan látja a sablont a Blade, a Twig és más rendszerek

░░░░░░░░░░░░░░░
░░░░░░
    ░░░░░░
        ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
        ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░@yield ('description')░
    ░░░░░░░
    ░░░░░░
        ░░░░░░░░░░░░░░░░░░░░░░░
            @foreach ($navigation as $item)
                ░░░░░░░░░░░░{{$item->link}}░{{$item->title}}░░░░░░░
            @endforeach
        ░░░░░

        ░░░░░░░░
            ░░░░░░░░░░░░{{ $appName }}░
        ░░░░░░░░░
    ░░░░░░░
░░░░░░░

Hogyan látja a sablont a Latte

<!DOCTYPE html>
<html>
    <head>
        <title>It's all about context</title>
        <meta name="description" content={include description}>
    </head>
    <body>
        <ul class="navigation">
            {foreach  $navigation as $item}
                <li><a href={$item->link}>{$item->title}</a></li>
            {/foreach}
        </ul>

        <script>
            var appName = {$appName};
        </script>
    </body>
</html>

Layoutok és öröklődés

A kifinomult sablon újrafelhasználási és öröklődési mechanizmusok növelik a termelékenységet, mivel minden sablon csak az egyedi tartalmát tartalmazza, és az ismétlődő elemeket és struktúrákat újra felhasználják.

Sandbox

A Latte-nak páncélozott bunker van közvetlenül a motorháztető alatt. Ezt sandbox módnak hívják, és elszigeteli a nem megbízható forrásokból származó sablonokat, például azokat, amelyeket maguk a felhasználók szerkesztenek. Korlátozott hozzáférést biztosít számukra a tagekhez, szűrőkhöz, függvényekhez, metódusokhoz stb. Hogyan működik?

Gyors mint a szél

A Latte futásidőben optimális PHP kódra fordítja a sablonokat. Így ugyanolyan gyors, mintha tiszta PHP-t írna. A lefordított kód áttekinthető és könnyen debuggolható. Természetesen minden sablonmódosításkor újrafordításra kerül.

Több mint 18 év fejlesztés

Több mint 18 éve fejlesztjük a Latte-t – és a szám folyamatosan növekszik! Az általunk biztosított könyvtárak ezért nagyon kiforrottak, stabilak és széles körben használtak. Számos globális vállalat bízik bennük, és sok jelentős weboldal támaszkodik ránk. Ki használja és bízik a Latte-ban?

Kiváló dokumentáció

Az olvasók dicsérik a dokumentációt az érthetőségéért és teljességéért. Kellemes olvasást kívánunk.

Nyílt forráskódú

A Latte nyílt forráskódú és teljesen ingyenesen használható.