NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Kdy použít metody POST a GET

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
jakubho
Člen
Avatar
jakubho:30.7.2017 18:00

Ahoj programátoři.

Zajímalo by mě, jak je to s používáním POST a GET. Je mi jasné, že POST musím vždy použít, když přenáším citlivá data, třeba přihlašovací údaje apod. Ale jak je to s GET? Existuje nějaký případ, kdy je dobré použít spíše GET? A jak je to například s komentáři? Uživatel přeci ví, co do komentáře třeba tady na itnetworku napsal, takže nemá cenu mu to zatajovat, a lze použít i GET, které ukáže to co se odeslalo v URL. A pokud pak třeba odejde a uživatelův kamarád uvidí obsah v URL, tak se nic neděje ne, vidí jen obsah komentáře (narozdíl, aby viděl třeba heslo, které by bylo předáno GETem, tam je problém jasný).

Na druhou stranu, vidím že na stránkách je často POSTem přenášeno všechno. Je k tomu nějaký bezpečnostní důvod? Nebo je to prostě jenom zažitá konvence? Kdy tedy GET vlastně používat, jestli vůbec?

Odpovědět
30.7.2017 18:00
Chyba-Jediná jistota v životě programátora.
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na jakubho
Jan Lupčík:30.7.2017 18:18

Co vím, tak GET je dobré používat, když chceš tu adresu s někým sdílet - třeba vyhledávání. A pak si představ tu URL, kdy posíláš přes GET komentář. :D

Nahoru Odpovědět
30.7.2017 18:18
TruckersMP vývojář
Avatar
Eda Stehlík
Člen
Avatar
Odpovídá na Jan Lupčík
Eda Stehlík:30.7.2017 19:10

Pokud bys to posílal komentář přes url tak to může člověk použít k Cross-site request forgery

 
Nahoru Odpovědět
30.7.2017 19:10
Avatar
Odpovídá na jakubho
Martin Konečný (pavelco1998):30.7.2017 19:23

Obecně GET v případě, kdy je účelem čtení dat (př. předáš si ID článku, vyhledávaný řetězec atp.). POST pak v případě manipulace s daty (př. vytváření článku, editace, mazání).
Často se ale třeba GET používá i právě pro manipulaci s daty, protože je to takový jednodušší, strčit někam odkaz, než dělat celý formulář :D
Nevýhodou GET pak je to, že se to právě přenáší přes URL adresu a dá se to snadno podstrčit. Jak zmiňoval @Eda Stehlík, tak to lze pak snadno použít pro CSRF, a to jednoduše třeba tak, že někam (diskusní fórum, ...) podstrčíš takovým trochu hackem adresu např.:

<img src="www.stranka.cz/smazat-clanek.php?id=5">

Ta URL se "zavolá" a smaže ti článek s ID 5 (pochopitelně pokud nejsi proti tomu útoku chráněn). Obecně se přes URL nevyplácí přenášet citlivá data (a už vůbec ne třeba heslo při přihlašování).

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
30.7.2017 19:23
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
jakubho
Člen
Avatar
Odpovídá na Martin Konečný (pavelco1998)
jakubho:30.7.2017 22:01

Děkuji všem za odpovědi! Označím Martinův komentář jako řešení, protože to tak pěkně shrnul a vysvětlil :)

Editováno 30.7.2017 22:02
Nahoru Odpovědět
30.7.2017 22:01
Chyba-Jediná jistota v životě programátora.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.