Stránka 1 z 1

[jQuery,PHP] Rozložení zátěže

Odeslat příspěvekNapsal: 18. 2. 2012 14:33
od Thomas123
Zdravím,

potřeboval bych nakopnout, jaké slovní spojení hledat na Googlu nebo příp. ještě lépe, pokud by mi někdo poradil konkrétněji. Mám následující problém.

Uživatel odešle formulář, který normálně zpracuji na serveru. Podle určité zaslané hodnoty stáhnu z jiného serveru určitý soubor. Soubor (jeho cca 1/10) zpracuji a uložím do databáze pro další zobrazení.

Chtěl bych ale snížit zátěž na serveru. Chtěl bych docílit následujícího. Uživatel by kliknul na odeslání formuláře, pomocí AJAXu bych zpracoval požadavek a uživatelovi bych zpět poslal URL adresu určitého souboru umístěného na jiném serveru. Pomocí JS bych soubor zpracoval a na server bych vrátil už onu zpracovanou 1/10 souboru určenou k uložení do databáze.

Toto bych zvládl napsat, nevidím v tom žádný problém, ale chtěl bych se zeptat, jakým způsobem zajistit, aby JS zpracoval opravdu soubor, který má a né např. nějaký podvržený?

Jediné, co mě zatím napadlo by bylo nezasílat URL s tvarem doménového jména, ale s IP adresou. Toto má ale nevýhodu, protože IP adresa se může čas od času změnit. Doménové jméno zase může uživatel podvrhnout pomocí lokální úpravy /etc/hosts či pomocí vlastního DNS serveru.
Dále mě napadlo, že by musel JS zpracovaný soubor odeslat serveru během velice krátké doby (cca do 2s). Což by teoreticky řešilo, že uživatel by měl zminimalizovanou možnost úpravy souboru v prohlížeči.

Je nějaká možnost zajistit, aby uživatel nemohl podvrhnout data získaná ze souboru nebo samotný stahovaný soubor?

Re: [jQuery,PHP] Rozložení zátěže

Odeslat příspěvekNapsal: 18. 2. 2012 20:35
od Vebloud
Tak zaprvé, co mi jako uživateli zabrání tvůj JS změnit a podvrhnout mu co budu chtít a za druhé v JS nemůžeš přistupovat k souborům!

Musel bys to zpracovat přímo v paměti a přímo z paměti opět posílat na server.

Re: [jQuery,PHP] Rozložení zátěže

Odeslat příspěvekNapsal: 18. 2. 2012 21:25
od Thomas123
Díky za odpověď. Jakým způsobem je možné změnit můj JS a podvrhnout mu něco jiného? V JS ale přeci mohu přistupovat k jiným stránkám(tedy souborům)? Jestli bych mohl poprosit o dovysvětlení s tou pamětí...

Re: [jQuery,PHP] Rozložení zátěže

Odeslat příspěvekNapsal: 18. 2. 2012 21:40
od gandor
Nie nemozes pristupovat k inym suborom. Mozes spravit request na iny server a ten ako response ti moze vratit dany subor... Tym javascriptom ale necitas subor - subor cita webovy server, ktory tomu javascriptu posle text - MOZNO s obsahom suboru - a ten "text" musi byt teda cely v pamati ako ti Vebloud napisal...

BTW. na tvoje riesenie mozes pouzit - klasicky request - teda nie AJAX (podobne ako obrazok - ale mozes akoze "dynamicky dotahovat novy javascript" - v reali to moze byt tvoj subor nejak escapenuty - json napr.)... Taketo citanie sa povoluje len v ramci domeny, na ktorej si (ak si na www.priklad1.sk, tak ti nepovoli spravit request na www.priklad2.sk) - teda by TEORETICKY nemal vznikat ziaden problem.

Samozrejme potom ale pozor co zasielas (na perzistentne pametanie) - platia vsetky zakonitosti ako ked dostanes lubovolny iny vstup od uzivatela (teda kontrolujes, ze ci sa nejedna o utok - falosny "obsah" spracovania, XSS, SQL injection atd atd).

Osobne by som to asi na strane usera neriesil - prilisna komplikovanost ktora pravdepodobne nedorovna uzitok...