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 02:11 | Komunita

    Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.

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

    Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    23.12. 18:33 | Nová verze

    Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.

    Ladislav Hagara | Komentářů: 0
    23.12. 13:55 | Nová verze

    Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.

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

    Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.

    Ladislav Hagara | Komentářů: 0
    22.12. 23:44 | Nová verze

    Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.

    Ladislav Hagara | Komentářů: 0
    21.12. 05:00 | Nová verze

    Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 2
    21.12. 01:55 | Nová verze

    GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.

    Ladislav Hagara | Komentářů: 0
    19.12. 17:22 | IT novinky

    Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.

    Ladislav Hagara | Komentářů: 14
    19.12. 17:00 | Komunita

    Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.

    Ladislav Hagara | Komentářů: 1
    Kdo vám letos nadělí dárek?
     (33%)
     (2%)
     (11%)
     (2%)
     (1%)
     (2%)
     (15%)
     (19%)
     (14%)
    Celkem 85 hlasů
     Komentářů: 18, poslední včera 15:30
    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: 483×
    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: 67 | 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: 67 | 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: 67 | 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: 67 | 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.