Autor | Zpráva | ||
---|---|---|---|
jataken Profil * |
#1 · Zasláno: 13. 7. 2010, 13:48:14
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 |
#2 · Zasláno: 13. 7. 2010, 14:12:56
jataken:
Co uživatelé bez Javascriptu? Proč ho tam neumístit rovnou v PHP? |
||
jataken Profil * |
#3 · Zasláno: 13. 7. 2010, 14:24:20
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 |
#4 · Zasláno: 13. 7. 2010, 14:34:22
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 * |
#5 · Zasláno: 13. 7. 2010, 14:43:19
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 |
#6 · Zasláno: 13. 7. 2010, 15:28:00
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 |
#7 · Zasláno: 14. 7. 2010, 02:11:04
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 * |
#8 · Zasláno: 14. 7. 2010, 12:21:52
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 |
#9 · Zasláno: 15. 7. 2010, 09:41:40
Reaguji na jatakena:
Nemáš. Musíš to zohlednit, není to zase tak těžké. |
||
Joker Profil |
#10 · Zasláno: 15. 7. 2010, 09:53:36
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 |
#11 · Zasláno: 15. 7. 2010, 10:08:14
jataken:
Napiš si nějaký jednoduchý form a link builder, aby ti tam tokeny doplňoval automaticky. |
||
Časová prodleva: 14 let
|
0