Czy da się ominąć CORS?

0

Cześć,

Wie ktoś może czy da się coś zrobić w sytuacji gdy chcemy dostać się do prywatnego API chronionego przez CORS? Dane spływają jedynie gdy odświeżę sobie stronę A na której się wyświatlają (CORS to chyba jedyne zabezpieczenie, nie trzeba się logować), natomiast gdy uderzę bezpośrednio w url od api (np. http://api.url-api.pl) to rzuca 403. Z tego co rozumiem CORS blokuje wszyzstkie requesty ze źródeł innych niż strona A, poprzez sprawdzenie headera origin. Czy istnieje jakiś sposób na obejście tego, poprzez np. ustawienie origina manualnie, np w jakiejś bilbiotece node'owej do wysyłania requestów? Czy jest to niemożliwe?

1

Jakieś proxy jak nginx np.

0

Rozumiem że to proxy zmieniałoby jakoś requesta. W jaki sposób konkretnie?

0

Dodając headera Access-Control-Allow-Origin

0

Hmmm... Nie brzmi to jak coś co ustawia origin, a na moje to origina trzeba by jakoś zmienić... czy się mylę?

0

Te api to wasze czy czyjes?

0

Czyjeś

2

przez js nie ominiesz chyba, że napiszesz to bicie do api w node.js lub innym języku backendowym to cors nie zadziała natomiast jest możliwe, że mają inne blokady na taką ewentualność.

0

Bezpośrednio będzie problem. Obejście to pośrednicy.
Jakieś losowe linki z wyszukiwarki:
https://medium.com/netscape/hacking-it-out-when-cors-wont-let-you-be-great-35f6206cc646
https://mansfeld.pl/bezpieczenstwo/cors-co-to-jest-jak-obejsc-ajax/

Jeżeli te sposoby nie działają to znaczy że (obok CORS) są jakieś dodatkowe zabezpieczenia.
Co oznacza "natomiast gdy uderzę bezpośrednio w url od api (np. http://api.url-api.pl) to rzuca 403.". Robisz to tylko w js w przeglądarce?

0
Delor napisał(a):

Bezpośrednio będzie problem. Obejście to pośrednicy.
Co oznacza "natomiast gdy uderzę bezpośrednio w url od api (np. http://api.url-api.pl) to rzuca 403.". Robisz to tylko w js w przeglądarce?

Tak, ale przez skrypt w nodzie albo postmana też rzuca 403

1
mazurro napisał(a):

Tak, ale przez skrypt w nodzie albo postmana też rzuca 403

no to w takim razie to nie jest CORS bo CORS jest respektowany tylko przez przeglądarki. Być może API sprawdzia referer - ten też łatwo dodać do zapytania. Podejrzyj filddlerem zapytanie jakie idzie do strony ze wszystkimi nagłówkami i po prostu zrób takie samo. Ale to walka z wiatrakami - jak autor zobaczy że leci więcej zapytań z Twojego proxy to może je zablokować. Może też w każdej chwili zmienić swoje API albo je usunąć bez powiadomienia - najlepiej się dogadać z autorem strony, ewentualnie mu coś zapłacić za dostęp do API, wtedy masz gwarancję że Twoja strona nie przestanie nagle bez uprzedzenia działać. To co teraz robisz to korzystanie z cudzej pracy bez jego zgody podpisując się pod nią - w sumie dziwne że jeszcze nie ma tego w prawie ale podchodzi definicją pod plagiat.
W zasadzie to może dobrze że nie ma takiego przepisu, bo jak się jakiś urzędnik dowiedział że istnieje coś takiego jak ciasteczka to teraz wszyscy mają bezsensowne dodatkowe klikanie na każdej stronie - cholera wie jak by zareagowali jakby się dowiedzieli że można "kraść" dostęp do API - uregulowaliby tworzenie API?

1
mazurro napisał(a):

Cześć,

Wie ktoś może czy da się coś zrobić w sytuacji gdy chcemy dostać się do prywatnego API chronionego przez CORS?

Zależy, co chcesz zrobić. Dla konkretnej przeglądarki możesz użyć wtyczek typu: Referrer Control albo Disable Content-Security-Policy. Ew. samemu sobie coś napisać.

Ale jeśli chcesz to wykorzystać np. na publicznie dostępnej stronie, to raczej się nie da.

2

CORS to ficzur przeglądarek, więc a gdybyś sobie wystawił swoje API, które odpytuje tamto API? Xd

1 użytkowników online, w tym zalogowanych: 0, gości: 1