Autor Zpráva
jataken
Profil *
Na stránce mívám obvykle několik formulářů a odkazů, ke všem potřebuju přifařit token. Napadlo mě umístit na konec stránky javascript kód, který by zajistil, že po akcích onSubmit u formuláře a onClick u odkazů se automaticky doplní token do odkazů a do formulářů. Co si o tomhle řešení myslíte? Je to dobrý nápad takhle to řešit?
Joker
Profil
jataken:
Co uživatelé bez Javascriptu?
Proč ho tam neumístit rovnou v PHP?
jataken
Profil *
Joker:
Co uživatelé bez Javascriptu?
V dnešní době?

Proč ho tam neumístit rovnou v PHP?
Protože tam bych ho musel ručně umisťovat ke každému prvku nebo bych to musel bufferovat a provést nějaký replace, což je náročné na paměť. Javascript mi zaručí to, že každý prvek bude mít token - žádné bezpečnostní riziko zapomenutí umístění tokenu.
Chamurappi
Profil
Reaguji na jatakena:
V dnešní době?
V jakékoliv době. Co je na dnešní době tak speciálního? Drtivá většina webů funguje bez JavaScriptu v pohodě, takřka všichni s tou možností počítají, přestože JS hojně využívají. Počet lidí s vypnutým skriptováním se nijak zvlášť nemění.

nebo bych to musel bufferovat a provést nějaký replace, což je náročné na paměť
Kolik gigabajtů mají tvé stránky?
jataken
Profil *
Chamurappi:
Kolik gigabajtů mají tvé stránky?
V několika speciálních případech se může jednat o několikamegabajtovou stránku.
Joker
Profil
jataken:
V dnešní době?
Jistě. Krom toho se může stát, že uživatel sice JS mít bude, ale ten skript se neprovede- stačí aby nějaký předchozí skript skončil chybou, nebo uživatel třeba v Opeře zaškrtl „Zastavit provádění skriptů této stránky“.

bych ho musel ručně umisťovat ke každému prvku nebo bych to musel bufferovat a provést nějaký replace
Budiž, tohle by v určitých případech mohl být argument. U běžných webů bych ale řekl, že formulářů a odkazů vyžadujících autorizační token nebude tolik a pokud se po webu zbytečně neduplikují, bylo by to párkrát ctrl-c, ctrl-v

Javascript mi zaručí to, že každý prvek bude mít token
Bez zásahu do kódu stránek asi taky nebude snadné tím Javascriptem přidat token tam kde má být a naopak ho nepřidávat tam kde být nemá.

žádné bezpečnostní riziko zapomenutí umístění tokenu.
Co je v tom za bezpečnostní riziko? Samozřejmě je to špatně, protože daná akce pak nebude fungovat, ale nevidím bezpečnostní riziko v tom někam token nedat. To spíš naopak je riziko přidat token někam kde být nemá.
Chamurappi
Profil
Reaguji na jatakena:
V několika speciálních případech se může jednat o několikamegabajtovou stránku.
PHP doposud neumí proudově zpracovávat buffer? To musíš celý výstup nasyslit do paměti, když s ním chceš něco dělat?
jataken
Profil *
Kde mám ale jistotu, že pokud spustím ob_start s nějakou callback fcí která mi bude třeba nahrazovat slovo1 za slovo2 a nastavím chunk_size na nějakou hodnotu, tak to zrovna neskončí uprostřed toho slova třeba na "slov" apod.?
Chamurappi
Profil
Reaguji na jatakena:
Nemáš. Musíš to zohlednit, není to zase tak těžké.
Joker
Profil
jataken:
No, já bych to asi upravil ručně. Pořád mám představu, že formulářů a odkazů vyžadujících CSRF token nebude zas tolik (nebo jich na stránce bude hodně, ale budou se generovat programem z nějaké šablony) a hlavně v editoru nebude zas takový problém je vyhledat a nahradit.

A přijde mi, že pokud tedy ty věci vyžadující CSRF token nejsou už teď nějak odlišené od zbytku, tak doplňování algoritmem nebude zrovna snadné, hlavně pokud daná stránka umožňuje zasílání obsahu i návštěvníkům (třeba komentáře a tak).
Mastodont
Profil
jataken:
Napiš si nějaký jednoduchý form a link builder, aby ti tam tokeny doplňoval automaticky.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: