abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 18:55 | Humor

    Jak na webu co nejšíleněji zadávat datum? Jak to uživatelům co nejvíce znepříjemnit? V Bad UX World Cup 2025 (YouTube) se vybíraly ty nejšílenější UX návrhy. Vítězným návrhem se stal Perfect Date.

    Ladislav Hagara | Komentářů: 1
    včera 12:44 | Zajímavý software

    Společnost Collabora vydala (YouTube) na LibreOffice založený desktopový kancelářský balík Collabora Office. Pro Windows, macOS a Linux. Se stejným uživatelským rozhraním jako Collabora Online. Svůj desktopový kancelářský balík s rozhraním LibreOffice pojmenovala Collabora Office Classic.

    Ladislav Hagara | Komentářů: 4
    včera 12:00 | Nová verze

    Glen MacArthur vydal AV Linux (AVL) a MX Moksha (MXM) 25. S linuxovým jádrem Liquorix. AV Linux (Wikipedie) je linuxová distribuce optimalizována pro tvůrce audio a video obsahu. Nejnovější AV Linux vychází z MX Linuxu 25 a Debianu 13 Trixie. AV Linux přichází s desktopovým prostředím Enlightenment 0.27.1 a MX Moksha s prostředím Moksha 0.4.1 (fork Enlightenmentu).

    Ladislav Hagara | Komentářů: 0
    27.11. 17:55 | Nová verze

    Ubuntu pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 26.04 LTS (Resolute Raccoon).

    Ladislav Hagara | Komentářů: 0
    27.11. 14:33 | IT novinky

    Zástupci členských států EU se včera shodli na návrhu, který má bojovat proti šíření materiálů na internetu zobrazujících sexuální zneužívání dětí. Nařízení známé pod zkratkou CSAM a přezdívané chat control mělo množství kritiků a dlouho nebyla pro jeho schválení dostatečná podpora. Pro schválení byla potřeba kvalifikovaná většina a dánské předsednictví v Radě EU se snažilo dosáhnout kompromisu. Návrh nakonec po dlouhých týdnech

    … více »
    Ladislav Hagara | Komentářů: 12
    27.11. 12:22 | Zajímavý software

    Britské herní studio Facepunch stojící za počítačovými hrami Garry's Mod a Rust uvolnilo svůj herní engine s&box (Wikipedie) jako open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT. Herní engine s&box je postavený nad proprietárním herním enginem Source 2 od společnosti Valve.

    Ladislav Hagara | Komentářů: 1
    27.11. 04:55 | Komunita

    Vývoj programovacího jazyka Zig byl přesunut z GitHubu na Codeberg. Sponzoring na Every.

    Ladislav Hagara | Komentářů: 6
    27.11. 04:44 | Komunita

    Stejně jako GNOME i KDE Plasma končí s X11. KDE Plasma 6.8 poběží už pouze nad Waylandem. Aplikace pro X11 budou využívat XWayland.

    Ladislav Hagara | Komentářů: 3
    26.11. 14:55 | IT novinky

    Poslanci Evropského parlamentu dnes vyzvali k výraznému zvýšení ochrany nezletilých na internetu, včetně zákazu vstupu na sociální sítě pro osoby mladší 16 let. Legislativně nezávazná zpráva, kterou dnes odsouhlasil Evropský parlament poměrem 493 hlasů pro ku 92 proti, kromě zavedení věkové hranice 16 let pro využívání sociálních sítí, platforem pro sdílení videí či společníků s umělou inteligencí (AI) vyzývá také k zákazu … více »

    Ladislav Hagara | Komentářů: 52
    26.11. 14:11 | Humor

    Doom v KiCadu nebo na osciloskopu? Žádný problém: KiDoom: Running DOOM on PCB Traces a ScopeDoom: DOOM on an Oscilloscope via Sound Card.

    Ladislav Hagara | Komentářů: 3
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (47%)
     (19%)
     (18%)
     (23%)
     (16%)
     (24%)
     (16%)
     (18%)
    Celkem 417 hlasů
     Komentářů: 17, poslední 19.11. 21:57
    Rozcestník

    PEAR - III (Autentizace)

    31. 5. 2005 | Pavel Szalbot | Programování | 7895×

    Další díl seriálu je zaměřen na balíčky poskytující nástroje pro autentizaci uživatelů.

    Autentizace

    Webové aplikace uživatelům zpravidla nabízejí nejrůznější služby dostupné přes přihlašovací jméno a heslo. Vzniká tak potřeba správy databáze uživatelů, která může být velmi často složitá (účty mohou být uloženy v různých databázových systémech, pravděpodobně budou různě privilegované, obsahují dodatečná data jako doba vypršení, poslední přihlášení apod.) a potřeba vytvořit autentizační systém. Stejně jako vývoj ostatních kritických komponent aplikace si systém ověřování a autorizace vyžádá spoustu času a testování (zvláště kvůli bezpečnosti) a nabízí se tak otázka, jestli by nebylo vhodné poohlédnout se po vyzkoušeném a fungujícím řešení. V PEARu naleznete několik balíčků, které autentizační systém implementují a umí toho možná více, než byste čekali. Tentokrát však buďte při používání cizího kódu ostražití více než obvykle - zabezpečení aplikace a procesům s ním spojeným byste měli dokonale rozumět a cizí kód bezhlavě nepřejímejte.

    Co nabízí PEAR?

    Auth

    Auth je základní balíček tříd poskytující autorizační a ověřovací mechanismy pro vaše skripty. Přes svoji relativní jednoduchost vám dovolí následující:

    • volbu úložiště uživatelských účtů (nadefinovaná "abstraktní" třída pro práci s úložistěm a z ní odvozené třídy pro práci s databázovými servery (přes PEAR::DB), soubory s uživatelskými účty (flat files), LDAP serverem, SOAP protokolem apod.)
    • správu uživatelských účtů (vytvoření, smazání, změna hesla uživatele)
    • kontrolu vypršení a nečinnosti (idle-time) relace/uživatele
    • možnost používat několik relací v rámci jediné domény (v sessions známých z PHP se jako proměnné vytvářejí asociativní pole ve zdrojových kódech označené jako "session")
    • volitelné vyšší zabezpečení díky sledování IP adresy klienta a jeho HTTP klienta (pozn.: tyto vlastnosti byste měli kontrolovat jen pokud víte, co znamenají - např. IP adresa se může dynamicky měnit a uživatel tak může přijít o relaci).
    • ukládat v relaci vlastní data
    • často jednoduše migrovat ze starého systému ověřování uživatelů

    Při práci s ním dost možná pocítíte např. absenci podpory pro různě privilegované účty, nicméně svojí jednoduchostí vám vše vynahradí tam, kde nejsou potřeba. Mohla by vám také vadit nemožnost využít HTTP autentizaci, ale tu umožní stejnojmenná třída z balíčku Auth_HTTP, která Auth používá jako svoji předlohu.

    Příklad typického použití třídy Auth:

    <?php
    require_once('Auth.php');
    require_once('PEAR.php');
    
    /**
     * Zobrazí přihlašovací formulář.
     */
    function displayLoginForm() {
        print("<form action=\"\" method=\"post\">\n");
        print("<fieldset>\n");
        print("<legend>Přihlašovací formulář</legend>\n");
        print("<label>Jméno:</label><input type=\"text\" name=\"user\" />\n");
        print("<label>Heslo:</label><input type=\"passwd\" name=\"passwd\" />\n");
        print("<input type=\"submit\" name=\"submit\" value=\"Přihlásit\" />\n");
        print("</fieldset>\n");
        print("</form>\n");
    }
    
    $authOptions = array(
            'sessionName' => 'testDomain', 
    	'allowLogin' => true,
    	'postUsername' => 'user',
    	'postPassword' => 'passwd',
    	'advancedSecurity' => false,
    	'dsn' => 'pgsql://uzivatel:heslo@zoidberg/pear',
            'table' => 'admin_users',
            'usernamecol' => 'login',
            'passwordcol' => 'pass');
    
    $auth = new Auth('DB', $authOptions, 'displayLoginForm');
    $auth->start();
    if(!$auth->getAuth()) {
    	// nepřihlášen ...
    } 
    
    ?>

    Tento jednoduchý příklad demonstruje obvyklou práci s třídou Auth. Definujeme funkci, která se postará o zobrazení přihlašovacího formuláře, následně nastavíme volby pro autentizaci a vytvoříme instanci třídy. Autentizační proces spustíme funkcí start(), která v případě, že uživatel není přihlášen a ze stránky je přihlášení povoleno, zobrazí přihlašovací dialog. Následné volání getAuth() vrací logickou hodnotu signalizující úspěšnost přihlášení. Všimněte si nastavení tabulky ($authOptions['table']), sloupce se jménem uživatele (usernamecol) a heslem (passwordcol). Díky této možnosti můžete svůj starý systém, který pravděpodobně funguje podobně, nahradit třídami balíčku Auth.

    Nezoufejte ani v případě, že používáte jiné metody šifrování hesla - třídu pro práci s úložištěm dat můžete vždy 'zdědit' a přizpůsobit vlastním potřebám. Než se pustíte do práce s balíčkem Auth, podívejte se do dokumentace pro uživatele, která vám umožní s třídou okamžitě začít pracovat. Vhod přijdou i znalosti balíčku DB, který je v PEARu hojně používán.

    Jako doplněk k Auth byl vytvořen již zmíněný Auth_HTTP, který umožňuje poskytuje HTTP autentizaci dle RFC 2617.

    LiveUser

    LiveUser se na první pohled podobá balíčku Auth - umožňuje všechny akce s ním proveditelné. Proto mi původně nebylo zcela jasné, proč komunita kolem PEARu začlenění tohoto systému do frameworku povolila (přece jen existuje Auth), postupem času (a hlavně během odhalování jeho možností) se ukázalo, jak se věci mají. LiveUser totiž mj. obsahuje i rozšířené možnosti administrace uživatelů, o něž byl určitě zájem, a jelikož je najdete v balíčku LiveUser_Admin, který je určen k spolupráci s LiveUser...

    Máte tedy v ruce nástroje, kterými uživatelům přidělujete privilegia, sdružujete je do skupin (hierarchická struktura), které můžete volitelně opatřit výchozími privilegií a co by to bylo za systém, který by neuměl z libovolného prává vyvodit jiné (např. WRITE může implikovat READ). Každé právo lze také opatřit atributem, kterému typu uživatele smí být přiřazeno, a tak vzniká rozlišení na uživatele admina a uživatele řadového. Možností administrace práv je ještě o něco více a najdete je v dokumentaci. LiveUser_Admin definuje základní rozhraní pro práci s právy, které rozšiřují tři kategorie tříd lišící se právě v nabízených možnostech. Jmenovitě se jedná o kategorie:

    • Simple - libovolné právo lze přiřadit libovolnému uživateli.
    • Medium - přidává k Simple skupiny (možnost přiřadit skupině práva a uživatele).
    • Complex - všechny dokumentované vlastnosti.

    Autoři vyzdvihují jednoduchost migrace mezi těmito kategoriemi díky jednotnému veřejnému rozhraní. Je nutno podotknout, že plnou funkcionalitu nabízí LiveUser_Admin jen pro práva uložená v RDBMS přístupném prostřednictvím PEAR::DB nebo PEAR::MDB. Kategorie Simple je dostupná pro XML soubory.

    LiveUser a LiveUser_Admin tvoří dvojici, která by měla stačit i pro náročnější systémy. V rámci dokumentace projektu je dostupný i užitečný tutoriál, který vám oproti čtení zdrojových kódů ušetří trochu času. Dokumentace na webu ovšem není zdaleka úplná a plné využití schopností balíčku vyžaduje náhled do zdrojových kódů.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    31.5.2005 00:11 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše autentizace vs. autorizace
    Klasická chyba: (skoro) celý článek je o autentizaci, ale autor ji důsledně nazývá autorizací.
    31.5.2005 00:21 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: autentizace vs. autorizace
    Je to vlastně moje chyba, že to tak vyšlo. Autor mě na svůj přehmat upozornil, ale já na to ve spěchu zapomněl. Omlouvám se.
    31.5.2005 07:12 Pavel 'lingeek' Szalbot | skóre: 54 | Třinec
    Rozbalit Rozbalit vše Re: autentizace vs. autorizace
    Autentizace (slovo, které jsem ve slovníku češtiny nenašel, ale mám jen 'malé' vydání) = ověřování identity uživatele nebo procesu - ve článku nazývám ověřováním, systémem ověřování

    Autorizace (pro změnu v češtině existuje;-)) - ověření, zda má uživatel příslušná práva přístupová práva

    Viz základy 'autentizace', autorizace.
    Math, as Barbie says, is hard.
    31.5.2005 08:35 jkt
    Rozbalit Rozbalit vše carka
    a nabízí se tak otázka jestli by nebylo vhodné poohlédnout se
    nema bejt pred "jestli" carka?
    31.5.2005 14:28 g!
    Rozbalit Rozbalit vše Re: carka
    A nema veta zacinat velkym pismenem? :)
    31.5.2005 16:25 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: carka
    `diff -u článek komentar` :-P
    16.9.2006 22:59 Filip
    Rozbalit Rozbalit vše Re: PEAR - III (Autentizace)
    Tak nějak bych od diskuze čekal pár slov k danému tématu, vlastní zkušenosti apod. a nikoliv debatu o tom, jak se článek jmenuje nebo má jmenovat, kde chybí čárka a jiný nesmysly...

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.