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
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
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 Referera (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
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
Chamurappi:
Ok, díky

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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