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

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Thomas123 18. 2. 2012 14:33

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?
// I vy můžete mít legální software, stačí používat Linux Ubuntu //
Thomas123
Junior
Uživatelský avatar

Odeslat příspěvekod Vebloud 18. 2. 2012 20:35

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.
Žít a nechat žít, ty máš svůj názor, já mám svůj názor, já ti nebudu nutit svůj, nemusím souhlasit s tvým, ale udělám vše, abys ho mohl svobodně vyjádřit.
Vebloud
Ex-moderátor
Uživatelský avatar

Odeslat příspěvekod Thomas123 18. 2. 2012 21:25

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í...
// I vy můžete mít legální software, stačí používat Linux Ubuntu //
Thomas123
Junior
Uživatelský avatar

Odeslat příspěvekod gandor 18. 2. 2012 21:40

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...
gandor
Mírně pokročilý


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků