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:33 | Komunita

    Libre Graphics Meeting 2026, tj. čtyřdenní konference a setkání vývojářů a uživatelů svobodných a otevřených grafických softwarů, proběhne od 22. do 25. dubna v Norimberku. Dění lze sledovat na Mastodonu.

    Ladislav Hagara | Komentářů: 0
    včera 03:11 | Zajímavý software

    Vývojář Alexandre Gomes Gaigalas na GitHubu zveřejnil c89cc.sh, parser a kompilátor jazyka C89 napsaný v pouhém jediném skriptu o přibližně 8000 řádcích čistého bashe (bez dalších externích závislostí), který generuje ELF64 binárky pro x86-64. Jedná se o velmi jednoduchý kompilátor, který nepodporuje direktivy #include a dokonce ani funkci printf (lze použít puts), všechny dostupné deklarace lze nalézt v proměnné _BUILTIN_LIBC na konci skriptu. Skript je volně dostupný pod ISC licencí.

    » FIDESZ🧡! « | Komentářů: 6
    10.4. 23:33 | Nasazení Linuxu

    Francouzská vláda oznámila, že v rámci strategie 'digitální suverenity' zahájí 'přechod od systému Windows k počítačům s operačním systémem Linux' (sa sortie de Windows au profit de postes sous système d'exploitation Linux). DINUM (meziresortní ředitelství pro digitální technologie) požádalo ministerstva, aby do podzimu 2026 vypracovaly konkrétní plány nasazení Linuxu. Francie již dříve migrovala části státní správy na otevřená řešení.

    » FIDESZ🧡! « | Komentářů: 9
    10.4. 05:22 | IT novinky

    Nezisková organizace Electronic Frontier Foundation (EFF) hájící občanské svobody v digitálním světě po téměř 20 letech opouští platformu X (dříve Twitter). Na platformách Bluesky, Mastodon, LinkedIn, Instagram, TikTok, Facebook, Threads a YouTube zůstává.

    Ladislav Hagara | Komentářů: 5
    10.4. 03:33 | Nová verze

    Terminálový textový editor GNU nano byl vydán ve verzi 9.0. Vylepšuje chování horizontálního posouvání pohledu na dlouhé řádky a chování některých klávesových zkratek. Více v seznamu změn.

    |🇵🇸 | Komentářů: 0
    9.4. 19:22 | IT novinky

    Ministerstvo financí ve spolupráci s finanční správou dnes představilo beta verzi aplikace využívající umělou inteligenci pro předvyplnění daňového přiznání. Není třeba přepisovat údaje z různých potvrzení, ani hledat správné řádky, kam údaje napsat. Stačí nahrát dokumenty a využít AI.

    Ladislav Hagara | Komentářů: 8
    9.4. 18:33 | Zajímavý projekt

    Výrobce počítačových periferií Keychron zveřejnil repozitář se schématy šasi klávesnic a myší. Licence je restriktivní, zakazuje většinu komerčních užití a v podstatě jsou tak data vhodná pouze pro výukové účely, hlášení a opravy chyb, případně výrobu vlastního příslušenství.

    |🇵🇸 | Komentářů: 5
    9.4. 18:22 | Nová verze

    Správce balíčků APT, používaný v Debianu a odvozených distribucích, byl vydán ve verzi 3.2 (seznam změn). Mezi novinkami figurují nové příkazy pro práci s historií, včetně vracení transakcí.

    |🇵🇸 | Komentářů: 0
    9.4. 14:33 | IT novinky

    Společnost Anthropic oznámila Projekt Glasswing a s ní související AI model Claude Mythos Preview. Jedná se o iniciativu zaměřenou na kybernetickou bezpečnost, do které se zapojily velké technologické společnosti Amazon Web Services, Anthropic, Apple, Broadcom, Cisco, CrowdStrike, Google, JPMorganChase, Linux Foundation, Microsoft, NVIDIA a Palo Alto Networks. Anthropic věří, že nový AI model Claude Mythos Preview dokáže

    … více »
    Ladislav Hagara | Komentářů: 2
    9.4. 13:55 | Zajímavý software

    Firma Ojective Development vydala svůj nástroj pro monitorování a řízení odchozích síťových připojení Little Snitch i pro operační systém Linux. Linuxová verze se skládá ze tří komponent: eBPF program pro zachytávání provozu a webové rozhraní jsou uvolněny pod GNU GPLv2 a dostupné na GitHubu (převážně Rust a JavaScript), jádro backendu je proprietární pod vlastní licencí, nicméně zdarma k použití a redistribuci (cena přitom normálně … více »

    » FIDESZ🧡! « | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (2%)
     (14%)
     (24%)
    Celkem 1273 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Bezpečný eval matematického vzorca (python)

    1.7.2008 14:19 | Přečteno: 1207× | Ostatne | poslední úprava: 1.7.2008 14:22

    V poslednom období sa mi dostal pod ruky zaujímavý problém. Potrebujem bezpečne vypočítať uživateľom zadaný matematický vzorec. Problémy su hneď dva. Jednak vyhodnotiť, či vzorec vôbec je validný. (alebo teda či ide o vzorec, alebo nie - tu je tolerovaťeľné isté pochybenie) Druhý, väčší problém je bezpečnosť celého riešenia.

    Validácia vzorca

    Tu ide hlavne o to, že zadaný reťazec nemusí byť matematický príklad. Podobne ako napríklad google rozozná vyhľadávací reťazec od príkladu. (ide o veľmi podobnú funkcionalitu) Istá dávka tolerancie v tomto smere je v poriadku. (nevadí, keď sa pokúsi príklad vypočítať, aj keď ide o inú frázu) To som vyriešil sadou regexpov - overujem použité znaky, ich kombinácie a podobne. Všeobecne sa dá povedať, že pokiaľ dostanem na vstupe príklad, tak ho rozoznám. V prípade záujmu dohodím par riadkov v pythone, ale nejde o nič extra zaujímavé.

    Bezpečný výpočet

    Tu začína byť trošku problém. Na vstupe môže byť takmer čokoľvek. (predchádza len pár filtrami, ako lowercase, orezanie whitespaces a podobne) Používateľ navyše nemôže byť považovaný za dôveryhodnú osobu a môže - či už úmyselne, alebo zámerne poskytnúť nebezpečné vstupné hodnoty. (reťazec)

    Pythoní eval nemôžem v tomto prípade považovať za bezpečné riešenie. Nejaké snahy o jeho secure variantu už pred nejakou dobou stroskotali. Ako riešenie sa mi ponúka spúšťanie samostatného procesu v chroote s časovým obmedzením. (v desatinách sekundy - nevadí, ak sa príklad nestihne vypočítať, vadí, ak sa bude počítať pridlho) V takom prípade zvažujem navyše použitie perlu (jeho syntax je IMHO trošku bližšia "bežnému" matematickému zápisu) plus, samozrejme, par filtrov. (konverzia na desatinnu bodku a podobne)

    Záver

    Otázka teda je, ako (by) ste to riešili vy? Podeľte sa o svoje nápady / skúsenosti v diskusii! Za každu radu budem vďačný.

           

    Hodnocení: 67 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    1.7.2008 14:30 CEST
    Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
    No, pokud bych mel nejakou jednodussi omezenou mnozinu operaci a funkci, asi bych si radsi napsal vlastne parser. Ono to zas takovy tezky nebude, prakticky by to mohlo byt jenom par pravidel.

    Pokud bys uzivatele dokazal presvedcit na postfixovou nebo prefixovou notaci, tak jsi za vodou uplne.
    cezz avatar 1.7.2008 14:44 cezz | skóre: 24 | blog: dm6
    Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
    No pokusam sa o nieco velmi podobne ako zvlada google. Cize uzivatel nieco zada a ked ja uznam, ze je to vzorec, pokusim sa ho vypocitat. (a zobrazim mu riesenie prikladu popri dalsich vysledkoch, ktore zas vratia ine moduly)

    Cize urcite neviem uzivatela prinutit k nejakej notacii, maximalne si ju viem ja nejako pracne naformatovat. Dokonca ako som spominal, riesim aj to, ze u nas sa pouziva desatinna ciarka, kdezto inde bodka. (snazim sa prisposobit)

    Ide mi o to, ze nakolko je bezpecne si nieco take parsovat "rucne". Hlavne co sa tyka obmedzenia na cas vypoctu, spotrebovanu ram a oddelenie od premennych celeho programu (o pravach, ktore ma beziaci program nehovoriac).
    Computers are not intelligent. They only think they are.
    1.7.2008 15:37 rajcze | skóre: 6 | blog: rajcze | kus od Brna
    Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
    Netřeba přesvědčovat na pre/postfixovou notaci, infix se dá velmi triviálním způsobem na postfix převést. A vyhodnotit výraz v postfixu už je hračka.
    Rules of Optimization: Rule 1: Don't do it. Rule 2 (for experts only): Don't do it yet.
    thingie avatar 1.7.2008 14:41 thingie | skóre: 8
    Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
    http://haskell.org/haskellwiki/Safely_running_untrusted_Haskell_code

    Ani tam to není tak lehké, ač by člověk řekl, že stačí kontrolovat typy a bude.
    Růžové lži.
    1.7.2008 15:00 spang
    Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
    cezz avatar 1.7.2008 15:31 cezz | skóre: 24 | blog: dm6
    Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
    To prave vedie k tomu safe evalu, ktory AFAIK uz nejaky ten cas nie je udrziavany a tazko povedat, nakolko je safe..
    Computers are not intelligent. They only think they are.
    1.7.2008 15:57 diverman | skóre: 32 | blog: život s tučňáčkem
    Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
    deb http://ftp.cz.debian.org/debian jessie main contrib non-free
    1.7.2008 15:57 qiRzT | skóre: 14 | blog: U_Marvina
    Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
    Napsal bych si vlastní parser. Pokud jsou to jen matematické výrazy, je to LL(1) a stačí rekurzivní sestup (google určitě pro tyhle pojmy něco najde). Pokud to bude korektní, vyhodí to výsledek, pokud ne, řekne, že je to špatně.
    Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
    1.7.2008 20:17 JS
    Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
    Presne tak, pyparsing to resi.
    cezz avatar 1.7.2008 21:29 cezz | skóre: 24 | blog: dm6
    Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
    Tiez velmi zaujimava alternativa..
    Computers are not intelligent. They only think they are.
    1.7.2008 16:00 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
    k overeni spravnosti vyrazu to bude chtit neco vic nez regularni vyrazy... takze urcite to bude chtit napsat nebo vygenerovat nejaky parser. jinak pokud chcete mit absolutni jistotu, ze se vyraz nevyhodnoti na neco nechteneho, je nejlepsi napsat si vlastni evaluator.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    1.7.2008 19:13 Marek 'marx' Grác | skóre: 21 | blog: Paralelný blog | Brno / Bratislava
    Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
    Nešlo by to poslať ako vstup do bc ?

    Založit nové vláknoNahoru

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