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

Primele șabloane cu adevărat sigure și
intuitive pentru PHP

Peste 27 % dintre site-urile web au
vulnerabilități critice

Cea mai frecventă vulnerabilitate critică a site-urilor web este Cross-Site Scripting (XSS). Aceasta permite unui atacator să injecteze un script malițios într-o pagină străină, care se va executa în browserul unui utilizator nebănuitor. Poate modifica pagina, obține informații sensibile sau chiar fura identitatea utilizatorului.

Sistemele de șabloane eșuează în apărarea împotriva XSS. Latte este singurul sistem cu o apărare eficientă datorită escapării sensibile la context.

Cine dorește un site web bine securizat, folosește Latte.

Quiz: vă puteți apăra de vulnerabilitatea XSS?

Sursa datelor: Acunetix Web Vulnerability Report

Exemplu de escapare automată a variabilei $text în mai multe contexte diferite (puteți edita șablonul de sus):

{var $text = "O'Neill"}
- în text: <span>{$text}</span>
- în atribut: <span title={$text}></span>
- în atribut fără ghilimele: <span title={$text}></span>
- în JavaScript: <script>var = {$text}</script>
- în text: <span>O'Neill</span>
- în atribut: <span title='O&apos;Neill'></span>
- în atribut fără ghilimele: <span title="O&apos;Neill"></span>
- în JavaScript: <script>var = "O'Neill"</script>

Un limbaj pe care îl cunoașteți bine

Nu exagerăm. Deja cunoașteți limbajul Latte. Deja știți cum să scrieți expresii în el. Se scriu exact la fel ca în PHP. Așa că nu trebuie să vă gândiți cum se scrie ceva în Latte. Nu trebuie să căutați în documentație. Nu trebuie să învățați un alt limbaj. Pur și simplu scrieți ca în PHP. Mai multe despre sintaxa Latte

Buclă

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

Condiție

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

Expresii

{$product?->getDiscount()}

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

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

Latte vs Twig

Latte se bazează pe PHP, în timp ce Twig se bazează pe Python. Designerul în Latte nu trebuie să comute constant între două convenții diferite. De exemplu, între for person in people în șabloane și foreach $people as $person în PHP. Nici nu trebuie să se gândească unde să folosească {% %} și unde {{ }}, deoarece Latte are un singur delimitator {...}.

Încercați instrumentul pentru conversia șabloanelor Twig în Latte.

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

Modul economic care vă va entuziasma

Utilizatorii iubesc această funcționalitate. O numim n:atribute. Fiecare tag pereche, cum ar fi {if} … {/if}, care înfășoară un element HTML, poate fi scris ca atributul său n:if. Astfel se obține o notație foarte economică. Atributele pot avea și prefixele inner- și tag-, caz în care comportamentul se aplică la interiorul elementului, respectiv la tagurile HTML de deschidere și închidere. Mai multe despre n-atribute

Cu utilizarea n:atributelor:

<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>

Același lucru fără ele:

{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}

Latte răsfață dezvoltatorii

Editare

Latte are suport nativ în NetBeans și un plugin excelent pentru PhpStorm, care sugerează taguri, filtre și cod PHP.

Depanare

Fiți mereu la curent. Pluginul pentru Tracy vă informează pe fiecare pagină ce șabloane și ce variabile sunt randate.

Sistem de șabloane de noua generație

Latte este un sistem de șabloane de nouă generație – înțelege limbajul HTML. Acolo unde alte sisteme văd doar o grămadă de caractere, Latte vede elemente HTML. De aceea are două funcții uimitoare, cum ar fi escaparea sensibilă la context și n:atributele.

Cum văd șablonul Blade, Twig și alte sisteme

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

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

Cum vede șablonul 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>

Layouturi și moștenire

Mecanismele elaborate de reutilizare și moștenire a șabloanelor vă vor crește productivitatea, deoarece fiecare șablon conține doar conținutul său unic, iar elementele și structurile repetate sunt reutilizate.

Sandbox

Latte are un buncăr blindat chiar sub capotă. Se numește mod sandbox și izolează șabloanele din surse nesigure, cum ar fi cele editate de utilizatorii înșiși. Le oferă acces limitat la taguri, filtre, funcții, metode etc. Cum funcționează?

Rapid ca vântul

Latte compilează șabloanele în cod PHP optimizat în timpul rulării. Așadar, este la fel de rapid ca și cum ați scrie PHP pur. Codul compilat este clar și ușor de depanat. Desigur, la fiecare modificare a șablonului, acesta este recompilat automat.

Peste 18 ani de dezvoltare

Dezvoltăm Latte de peste 18 ani – și numărul continuă să crească! Bibliotecile pe care le oferim sunt, prin urmare, foarte mature, stabile și utilizate pe scară largă. Au încredere în ele numeroase corporații globale și alimentează multe site-uri web importante. Cine folosește și are încredere în Latte?

Documentație excelentă

Cititorii laudă documentația pentru claritate și caracterul complet. Vă dorim o lectură plăcută.

Open source

Latte este open source și îl puteți folosi complet gratuit.