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í
×
    dnes 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ářů: 3
    dnes 14:22 | Komunita

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

    Ladislav Hagara | Komentářů: 0
    dnes 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
    dnes 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
    dnes 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
    dnes 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
    dnes 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
    včera 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 12
    včera 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | IT novinky

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (72%)
     (9%)
     (2%)
     (17%)
    Celkem 759 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: PHP jak zakázat odeslání formuláře mimo stránky

    7.9.2011 18:16 ztc89
    PHP jak zakázat odeslání formuláře mimo stránky
    Přečteno: 402×
    Ahoj, poradí prosím, jak udělat to, že můžu odeslat formulář jen ze stránek na které ten formulář je? Děkuji za pomoc

    Řešení dotazu:


    Odpovědi

    MMMMMMMMM avatar 7.9.2011 18:39 MMMMMMMMM | skóre: 44 | blog: unstable | Valašsko :-)
    Rozbalit Rozbalit vše Re: PHP jak zakázat odeslání formuláře mimo stránky
    Napadá mne kontrola refereru při zpracování toho formuláře serverem, ale referer se dá snadno podvrhnout. Tak mne ještě napadá, co vytvořit session (v cookies) na stránce, kde je formulář vytvořený a potom kontrolovat planost této session během zpracování odeslaného formuláře? Pokud by žádná session nebyla vytvořena, znamenalo by to, že byl formulář odeslán z jinama nebo že má dotyčný zakázány Cookies. :-)
    bazil avatar 7.9.2011 18:51 bazil | skóre: 33 | blog: sluje | Miroslav
    Rozbalit Rozbalit vše Re: PHP jak zakázat odeslání formuláře mimo stránky
    cookies taky ne, uživatel by musel navštívit stránku (aby se vytvořila session a cookies) a až po té by musel kliknout na link s formulářem >> neřeší situaci, když přijde uživatel na server přímo na stránky s formulářem

    řešením by mohlo být generování náhodného ID formuláře, které by se ukládalo na serveru a přikládalo jako skrytá hodnota formuláře. pokud by náhodné id nebylo nalezeno uloženo na serveru, tak by to znamenalo neplatné odeslání formuláře. vylepšením by mohla být časová platnost formuláře jen na určitou dobu (smazat po určité době ID) ... btw ty ID se stejně musí nějakým způsobem časem mazat.

    PS: ony i ty session cookies se dají podvrhnout
    bazil avatar 7.9.2011 18:53 bazil | skóre: 33 | blog: sluje | Miroslav
    Rozbalit Rozbalit vše Re: PHP jak zakázat odeslání formuláře mimo stránky
    teda vkládat přímo jako náhodnou hodnotu, nejlépe pomocí JS, páč ten se blbě simuluje (ale stejně nezabráníte vložení stránky do iframu)
    7.9.2011 18:54 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: PHP jak zakázat odeslání formuláře mimo stránky
    Není problém si to náhodné ID z formuláře přečíst a pak vložit do svého formuláře.
    7.9.2011 18:47 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: PHP jak zakázat odeslání formuláře mimo stránky
    Nijak, protože nic takového jako „formulář je ve stránkách“ neexistuje – to je jen lidská představa, že když to má stejnou doménu a vypadá to podobně, tvoří to nějaký celek. Technicky to ale nijak propojené není. Nanejvýš můžete udělat nějaké kontroly, příklady popsal kolega výše – ale ty mohou bránit použití oprávněným uživatelům a naopak „záškodník“ je více či méně snadno obejde. Přinejhorším bude programově simulovat práci uživatele s prohlížečem.
    7.9.2011 19:37 l4m4
    Rozbalit Rozbalit vše Re: PHP jak zakázat odeslání formuláře mimo stránky
    Lze zajistit přijetí dat pouze od autentizovaného klienta, což ve většině praktických případů splňuje tazatelův požadavek.

    Nemá samozřejmě smysl se zabývat obcházením na straně klienta, protože jak to přesně udělá, že se autentizuje, dostane formulář a odešle ho (autentizovaně), je implementační detail na jeho straně.
    7.9.2011 20:18 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: PHP jak zakázat odeslání formuláře mimo stránky
    Lze zajistit přijetí dat pouze od autentizovaného klienta, což ve většině praktických případů splňuje tazatelův požadavek.
    Nesplňuje, to je něco úplně jiného. Je možné, že tazatel ve skutečnosti chce to, co popisujete – bohužel jsou tady časté dotazy, kde se někdo ptá na něco úplně jiného, než co potřebuje vyřešit.
    7.9.2011 21:18 l4m4
    Rozbalit Rozbalit vše Re: PHP jak zakázat odeslání formuláře mimo stránky
    Jak už jsi napsal, brát doslovně ,odeslat ze stránek` je nesmysl - formulář odesílá klient. Tak proč to bereš doslovně?

    Je to zkratkovité vyjádření požadavku na vazbu mezi klientem a těmi stránkami, tedy že platně může formulář odeslat pouze na základě toho, že ho získal z těch stránek a vazba, která mu to umožnila, stále trvá. A to je přesně ono.
    8.9.2011 08:21 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: PHP jak zakázat odeslání formuláře mimo stránky
    IDOS se kdysi snažil zabránit tomu, aby si někdo jiný mohl dát na svůj web formulář s předvyplněnými hodnotami (odkud, kam) a ten pak odeslat do vyhledávání IDOSu. Asi jim to jedno zobrazení reklamy na formuláři navíc stálo za to nutit uživatele, aby názvy stanic vyplnil, i když mohly být předvyplněné. Snažili se tedy kontrolovat právě to, zda byl dotaz poslán z „jejich“ formuláře. Tazatel se podle mne ptal právě na tohle. Ovšem vzhledem k tomu, že tazatel se zatím vůbec neobtěžoval upřesnit, co vlastně chce, asi to měl být jenom podnět pro nás k diskusi a ve skutečnosti to tazatele vůbec nezajímá…
    xkucf03 avatar 7.9.2011 19:32 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše CSRF, XSRF, CAPTCHA, nejde to
    Tvůj problém se jmenuje CSRF a typicky se řeší tak, že formulář obsahuje skryté pole a v něm náhodnou hodnotu vygenerovanou na serveru (CSRF token) a při odeslání formuláře se kontroluje tato hodnota – pokud byl formulář odeslán ze stránek útočníka, tato hodnota chybí nebo je nesprávná.

    Pak je ještě možnost, že nechceš předejít útokům na uživatele, ale chceš uživatelům zabránit odesílání formuláře odjinud (třeba vlastním skriptem) a to nejde. Skript/program může simulovat chování prohlížeče (včetně všech tokenů, hlaviček, cookies atd.) a na serveru nepoznáš, jestli to posílal uživatel vyplněním formuláře na webu nebo nějaký jeho skript (pak leda CAPTCHA, ale ani ta často nefunguje – dá se např. roboticky rozpoznávat text – OCR atd.).
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    8.9.2011 00:21 Kit
    Rozbalit Rozbalit vše Re: PHP jak zakázat odeslání formuláře mimo stránky
    Jak už tady psali mnozí: Ochrana je obtížná, ale při běžných nárocích se vcelku úspěšně dá využít session, předvyplněné skryté pole, nevyplněné skryté pole a případná kontrola IP v session. Když k tomu přidám povinný náhled jako např. na abclinuxu.cz, dostanu sice ne 100%, ale jinak vcelku solidní ochranu proti nevhodným požadavkům.

    Kdysi mi stačilo, abych testoval políčko s dnem rezervace na hodnotu 1-31. Tenkrát to kupodivu vyfiltrovalo značné množství spamu. Velmi oblíbení je skryté pole "nick", které roboti velmi rádi vyplňují.

    Správná odpověď na původní otázku zní: Kontroluj hlavičku Referrer. Ovšem všichni víme, jak snadno se dá podvrhnout a jak snadno je možné odmítnout paranoidního uživatele. Proto vznikla Captcha, což je vlastně Turingův test.

    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.