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 16:44 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.18. Díky 174 přispěvatelům.

    Ladislav Hagara | Komentářů: 2
    včera 15:11 | IT novinky

    Miliardy korun na digitalizaci služeb státu nestačily. Stát do ní v letech 2020 až 2024 vložil víc než 50 miliard korun, ale původní cíl se nepodařilo splnit. Od loňského února měly být služby státu plně digitalizované a občané měli mít právo komunikovat se státem digitálně. Do tohoto data se povedlo plně digitalizovat 18 procent agendových služeb státu. Dnes to uvedl Nejvyšší kontrolní úřad (NKÚ) v souhrnné zprávě o stavu digitalizace v Česku. Zpráva vychází z výsledků víc než 50 kontrol, které NKÚ v posledních pěti letech v tomto oboru uskutečnil.

    Ladislav Hagara | Komentářů: 7
    včera 13:55 | IT novinky

    Nadace Wikimedia, která je provozovatelem internetové encyklopedie Wikipedia, oznámila u příležitosti 25. výročí vzniku encyklopedie nové licenční dohody s firmami vyvíjejícími umělou inteligenci (AI). Mezi partnery encyklopedie tak nově patří Microsoft, Amazon a Meta Platforms, ale také start-up Perplexity a francouzská společnost Mistral AI. Wikimedia má podobnou dohodu od roku 2022 také se společností Google ze skupiny

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 02:22 | Nová verze

    D7VK byl vydán ve verzi 1.2. Jedná se o fork DXVK implementující překlad volání Direct3D 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.

    Ladislav Hagara | Komentářů: 0
    včera 02:00 | Nová verze

    Byla vydána verze 12.0.0 knihovny libvirt (Wikipedie) zastřešující různé virtualizační technologie a vytvářející jednotné rozhraní pro správu virtuálních strojů. Současně byl ve verzi 12.0.0 vydán související modul pro Python libvirt-python. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    15.1. 19:22 | Humor

    CreepyLink.com je nový zkracovač URL adres, 'díky kterému budou vaše odkazy vypadat tak podezřele, jak je to jen možné'. Například odkaz na abclinuxu.cz tento zkracovač převádí do podoby 'https://netflix.web-safe.link/logger_8oIlgs_free_money.php'. Dle prohlášení autora je CreepyLink alternativou ke zkracovači ShadyURL (repozitář na githubu), který dnes již bohužel není v provozu.

    NUKE GAZA! 🎆 | Komentářů: 3
    15.1. 12:33 | IT novinky

    Na blogu Raspberry Pi byla představena rozšiřující deska Raspberry Pi AI HAT+ 2 s akcelerátorem Hailo-10 a 8 GB RAM. Na rozdíl od předchozí Raspberry Pi AI HAT+ podporuje generativní AI. Cena desky je 130 dolarů.

    Ladislav Hagara | Komentářů: 3
    15.1. 12:11 | Komunita

    Wikipedie slaví 25. výročí svého založení. Vznikla 15. ledna 2001 jako doplňkový projekt k dnes již neexistující encyklopedii Nupedia. Doména wikipedia.org byla zaregistrována 12. ledna 2001. Zítra proběhne v Praze Večer svobodné kultury, který pořádá spolek Wikimedia ČR.

    Ladislav Hagara | Komentářů: 1
    15.1. 04:44 | Nová verze

    Po více než dvou letech od vydání předchozí verze 2.12 byla vydána nová stabilní verze 2.14 systémového zavaděče GNU GRUB (GRand Unified Bootloader, Wikipedie). Přehled novinek v souboru NEWS a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 2
    15.1. 02:22 | Nová verze

    Google Chrome 144 byl prohlášen za stabilní. Nejnovější stabilní verze 144.0.7559.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 10 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře (YouTube).

    Ladislav Hagara | Komentářů: 4
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (5%)
     (0%)
     (9%)
     (19%)
     (3%)
     (6%)
     (3%)
     (11%)
     (42%)
    Celkem 463 hlasů
     Komentářů: 12, poslední 14.1. 21:12
    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: 260×

    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.