Autor | Zpráva | ||
---|---|---|---|
quatzael Profil |
Zkouším ajax na cizí server s tím, že by mělo jít obejít zabezpečení jak jsem byl ubezpečen ve vedlejším vlákně: AJAX - Zabezpečení přístupu
Samozřejmě tam mají zabezpečení prostřednictvím CORS (Cross-origin resource sharing) Zkouším tohle podle hlavičky, která je zobrazená v developer tools: $.ajax({ crossDomain: true, url: "https://www.cizidomena.com/data?a=OK&b=1", type: "GET", headers: { 'Cookie': '_silene_dlouhy_cookie', 'Host': 'www.cizidomena.com', 'Referer': 'https://www.cizidomena.com/folder' }, success: function (data,status) { alert("Data: " + data + "\nStatus: " + status); } }); Nevíte prosím kde je chyba? Hází mi to pořád Původ http://www.mojedomena.cz nebyl nalezen v hlavičce Access-Control-Allow-Origin. |
||
Fisir Profil |
#2 · Zasláno: 11. 7. 2016, 12:36:28
Reaguji na quatzaela:
Cizí server musí do HTTP hlavičky Access-Control-Allow-Origin přidat tvoji doménu, jinak AJAX fungovat nebude. Jestliže nemáš kontrolu nad cizím serverem, musíš si vyrobit nějakou serverovou proxy na stejné doméně, jako je daný skript.
|
||
quatzael Profil |
Fisir:
Kontrolu samozřejmě nemám. A jak se prosím dělá to proxy? Fisir: Je nějaký univerzální řešení, kdybych se chtěl připojovat ne z mý domény, ale např. z excelu? |
||
Chamurappi Profil |
#4 · Zasláno: 11. 7. 2016, 13:15:26
Reaguji na quatzaela:
„Zkouším ajax na cizí server s tím, že by mělo jít obejít zabezpečení jak jsem byl ubezpečen ve vedlejším vlákně“ Nikdo ale nehovořil o tom, že zabezpečení obejde zrovna JavaScript v nějaké HTML stránce. Ten prakticky nemá šanci. HTTP požadavek jde vyslat řadou jiných způsobů… „Zkouším tohle podle hlavičky, která je zobrazená v developer tools“ Pochybuji, že ti prohlížeč dovolí nastavit některé z těch hlaviček. Třeba Referer a (tuším) nemáš šanci podvrhnout… a od nastavování hlavičky Host bych si také mnoho nesliboval.
„A jak se prosím dělá to proxy?“ Na straně serveru (třeba v PHP) si vyrobíš skript, který provede veškerou komunikaci s cizí doménou a vrátí výsledek – pak AJAXem komunikuješ s tím svým serverovým skriptem. Nabízí se otázka, k čemu vlastně chceš ten AJAX… „Je nějaký univerzální řešení, kdybych se chtěl připojovat ne z mý domény, ale např. z excelu?“ Tohle jsem moc nepochopil :-) |
||
quatzael Profil |
Chamurappi:
Takhle, musí to být určitě přes server? Kdybych to chtěl udělat z desktopový aplikace, to by mělo jít taky, ne? „Tohle jsem moc nepochopil :-)“ Šlo mi o to, aby to šlo použít například i z excelu, v záložce data je několik způsobů jak komunikovat se serverem.. Ale jinak, když si nějak naprogramuju v Céčku desktopovou aplikaci, tak tam můžu zasílat referery jaký chci, ne? A co to cookie? Má to nějaký význam z hlediska zabezpečení proč se to odesílá spolu s tím requestem? |
||
Chamurappi Profil |
#6 · Zasláno: 11. 7. 2016, 14:07:56
Reaguji na quatzaela:
„Takhle, musí to být určitě přes server?“ Když mluvíš o AJAXu, tak se tím rozumí skript v HTML stránce… tam CORS neobejdeš a nabízí se řešení použít serverový skript. Jinak obecně HTTP komunikace žádné podobné limity samozřejmě nemá, což jde odvodit i z toho, že existují desktopové aplikace, které bez potíží komunikují s různými doménami – třeba webové prohlížeče :-) „Ale jinak, když si nějak naprogramuju v Céčku desktopovou aplikaci, tak tam můžu zasílat referery jaký chci, ne?“ Můžeš. |
||
quatzael Profil |
#7 · Zasláno: 11. 7. 2016, 14:40:48
Chamurappi:
Ok, díky |
||
Časová prodleva: 9 let
|
0