abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 2
    včera 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 6
    včera 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 34
    25.4. 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 13
    25.4. 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 3
    25.4. 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    25.4. 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

    Ladislav Hagara | Komentářů: 0
    25.4. 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    25.4. 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    25.4. 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (74%)
     (8%)
     (2%)
     (16%)
    Celkem 817 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: php jak escapovat url pre A element

    20.1.2014 11:51 gsnak | skóre: 22 | blog: gsnak
    php jak escapovat url pre A element
    Přečteno: 197×

    Vypisujem cez PHP na stranke adresu, URL je moja (natvrdo v zdrojaku), a pouzivatel zada len text ktory bude na tuto adresu odkazovat. Bezpecne sa to escapuje takto (vystupom je html):

    echo '<a href="http://example.com/123">'.htmlspecialchars($_REQUEST['nazov']).'</a>';

    Co ak ale chcem aby pouzivatel zadal aj URL? Je toto bezpecne?

    echo '<a href="'.htmlspecialchars($_REQUEST['url']).'">'.htmlspecialchars($_REQUEST['nazov']).'</a>';

    Je mozne pouzit tu istu funkciu na escapovanie htmlspecialchars? Alebo tym ze je to v href="__tu__" musim pouzit ineco ine? Co?

    Pozn: Realne tam este mam obmedzenie max. dlzky na 1000, htmlspecialchars(substr($_REQUEST['nazov'] ,0,1000)), vynechal som to lebo to s escapovanim priamo nesuvisi.

    Čo Rys, to vrah!

    Odpovědi

    AraxoN avatar 20.1.2014 12:35 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: php jak escapovat url pre A element
    Ak užívateľ zadal celú URL, tak áno, escapovať cez htmlspecialchars(), pretože predpokladá sa, že používateľ vložil už správne naformátovanú URL a treba ošetriť len znaky, ktoré môžu byť konfliktné v HTML (v praxi len znak &). Ak by zadával len časť URL (napr. http://www.example.com/data/<používateľská časť>, potom je bezpečné predpokladať, že je potrebné použiť aj urlencode() na tú časť, ktorú zadal.
    20.1.2014 12:48 gsnak | skóre: 22 | blog: gsnak
    Rozbalit Rozbalit vše Re: php jak escapovat url pre A element
    a ak zadal celu url nie je urlencode treba?
    Čo Rys, to vrah!
    AraxoN avatar 20.1.2014 14:00 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: php jak escapovat url pre A element
    Nie, lebo to zaenkóduje aj také časti, ktoré nemajú byť kódované. Keby si chcel celú URL dať ako parameter do inej URL, potom áno:

    http://www.example.com/?redirect_to=<?php echo urlencode($url); ?>
    20.1.2014 14:17 gsnak | skóre: 22 | blog: gsnak
    Rozbalit Rozbalit vše Re: php jak escapovat url pre A element

    Cize spravne je to takto?

    echo '<a href="'.urlencode($vstup1).'">'.htmlspecialchars($vstup2)).'</a>';
    Čo Rys, to vrah!
    AraxoN avatar 20.1.2014 15:07 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: php jak escapovat url pre A element
    Nie, nie je to univerzálne. Podľa toho, čo je $vstup1 a čo je $vstup2. Cez urlencode() sa kódujú len niektoré časti URL. htmlspecialchars() zase slúži na vypísanie znakov v HTML a s URL to v podstate nesúvisí. Najlepšie by bolo preštudovať manuál ku týmto dvom funkciám, plus príslušné RFC, ktoré sa zaoberajú URL adresami (v googli hľadať "url rfc") - to je obzvlášť nudné čítanie, ale obávam sa, že to je jediný spôsob ako poňať celú šírku problému.

    Alebo sa na to vykašli a neenkóduj nič, kým to funguje. To je síce zneužiteľná chyba, ale v praxi nie príliš často.
    Jendа avatar 20.1.2014 21:48 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: php jak escapovat url pre A element
    To je síce zneužiteľná chyba, ale v praxi nie príliš často.
    Jde tam strčit JavaScript a přečíst si pomocí něj cookie (pokud nemá nějaký flag?) nebo dělat jiné podobné skopičiny (protože ten JS má nastavené takové to origin policy a tak může číst třeba DOM stránky včetně anti-CSRF tokenů), ne?
    Josef Kufner avatar 20.1.2014 21:37 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: php jak escapovat url pre A element
    Toto je špatně. urlencode slouží k escapování parametrů v URL, nikoliv k escapování HTML.
    Hello world ! Segmentation fault (core dumped)
    Josef Kufner avatar 20.1.2014 21:51 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: php jak escapovat url pre A element
    Pokud používáš UTF-8, PHP 5.4, HTML 4.01 a okolo hodnoty atributu máš uvozovky, stačí použít prosté htmlspecialchars, tedy přesně tak, jak to máš.

    Doporučuju používát namísto toho tuto funkci:
    function html($str) {
      return htmlspecialchars($str, ENT_COMPAT | ENT_HTML5, 'UTF-8', true);
    }
    
    Samozřejmě nahraď ENT_HTML5 a kódování podle toho, co používáš.

    A pak:
    echo '',
      html($_REQUEST['nazov']), '';
    
    Pak ale není dobré jen tak rovnou použít vstup uživatele bez dalšího ověřování. Co by se stalo, když by někdo vyrobil ošklivý odkaz a poslal ho své oběti? To je však specifické pro každou aplikaci a pokaždé je vhodné to řešit trošku jinak. Rozhodně je však vhodné se nad tím zamyslet.

    Hello world ! Segmentation fault (core dumped)

    Založit nové vláknoNahoru

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

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