Na forum 4programmers.net korzystamy z plików cookies. Część z nich jest niezbędna do funkcjonowania
naszego forum, natomiast wykorzystanie pozostałych zależy od Twojej dobrowolnej zgody, którą możesz
wyrazić poniżej. Klikając „Zaakceptuj Wszystkie” zgadzasz się na wykorzystywanie przez nas plików cookies
analitycznych oraz reklamowych, jeżeli nie chcesz udzielić nam swojej zgody kliknij „Tylko niezbędne”.
Możesz także wyrazić swoją zgodę odrębnie dla plików cookies analitycznych lub reklamowych. W tym celu
ustaw odpowiednio pola wyboru i kliknij „Zaakceptuj Zaznaczone”. Więcej informacji o technologii cookie
znajduje się w naszej polityce prywatności.
Ja jednak chciałbym odczytać stronę, którą generuję z mojego serwera - Tomcata.
Adres do pliku: http://localhost:8080/add/
Jest on zapełniony jednak w kodzie nic się nie dzieje.
Czytałem coś że ten adres może być do poprawy ale nie wiem na jaki.
W każdym razie czy mógłbym prosić jak mogę to zmodyfikować ten adres do mojego serwera?
Jeśli ten sposób jest niepoprawny to czy moglibyście podrzucić inne sposoby na wczytanie zawartości innej strony?
W ramach zabezpieczenia przed atakami typu CSRF i XSS teoretycznie nie ma możliwości wykonywania zapytań z poziomu JS do innych domen. Wynika to z tzw Single Origin Policy. Obejście tego zwykle wymaga ustawienia nagłówka CORS po stronie serwera.
Czemu tak jest? Wyobraź sobie że umieszczam na swojej stronie javascript który wykonuje zapytania do jakiegoś lokalnego zasobu widocznego tylko dla kogoś wewnątrz twojej firmowej sieci (np. firmowy ECM, CRM czy ERP). JS wykonuje sie po stornie klienta wiec kiedy wejdziesz na moją stronę to z poziomu tego JSa można by pobrać jakieś dane z wewnętrznej sieci! Więc mamy anty-XSS.
Jednocześnie wyobraź sobie że na swojej stronie mam JS który wysyła request kasujący twoje konto na fejsbuku. Wchodzisz na moją stronę i pyk, konto na fejsbuku usunięte. Więc mamy anty-CSRF.
Napisałem wyżej że to wszystko jest teoretycznie bo da sie to mimo wszystko obejść np. za pomocą tzw dns rebinding, bo SOP sprawdza jedynie literalnie domenę, a nie serwer do którego domena sie resolvuje (częściowo też dlatego że mamy w internecie sporo reverse proxy i load balancerów, więc np. za facebook.com stoi wiele różnych serwerów). Więc teoretycznie mógłbyś, po tym jak user wejdzie na twoją stronę, zmienic wpis DNS dla swojej domeny, tak żeby wskazywał na jakiś lokalny (dla tego usera) zasób i wykonując request na mojadomena.com/cośtam odwołasz się realnie do tego lokalnego zasobu a SOP niczego nie zauważy...
edytowany 1x, ostatnio: Shalom
Usunąć wpis?
Tej operacji nie będzie można cofnąć.
Orakl Modyfikejszyn
Orakl Modyfikejszyn
0
Dzięki za odpowiedzi, wiele mi to wyjaśniło.
W takim razie możliwe, że źle się zabieram za pisanie aplikacji.
Chcę napisać aplikację: Serwer zwracający dane w formie JSONa (Spring etc.) oraz Klient (JS).
Chodzi mi o to, że gdy mój serwer aplikacji generuje dane w formie JSONa to ja chciałbym napisać oddzielnego klienta, który będzie w stanie wyświetlić te dane dlatego też pomyślałem o JavaScriptcie.
W takim razie co będzie najlepszą techniką do zczytania tego JSONa i wyświetlenia poszczególnych wartości?
Jeśli temat zszedł w inną technologię to prosiłbym o przeniesienie.
Usunąć wpis?
Tej operacji nie będzie można cofnąć.
Wielki Terrorysta
Wielki Terrorysta
0
Można do iframe'a załadować stronę i sprawdzić zawartość, ewentualnie od razu podpiąć pod drzewo i się sprasuje.
W ramach zabezpieczenia przed atakami typu CSRF i XSS teoretycznie nie ma możliwości wykonywania zapytań z poziomu JS do innych domen.
Nie do końca prawda. Zapytanie możesz wykonać wysyłając dowolne dane. Nie możesz dostać się do odpowiedzi. Możesz w ten sposób zrobić DDOS, ale nic więcej.
Jednocześnie wyobraź sobie że na swojej stronie mam JS który wysyła request kasujący twoje konto na fejsbuku. Wchodzisz na moją stronę i pyk, konto na fejsbuku usunięte. Więc mamy anty-CSRF.
Da się, request wyjdzie, ale że skrypt wykonuje się w innej domenie to z requestem nie pójdą ciasteczka fb, więc i nie będzie aktywnej sesji, więc nie będzie autoryzacji niezbędnej do usunięcia konta.
@ŁF to nie kwestia ciasteczek tylko CORS i zwykle też tokenów CSRF. Jeśli ciasteczka nie są ustawione na http-only to oczywiście że można je wysłać z takim requestem. Niemniej serwer zobaczy że request jest cross origin i go oleje, albo zobaczy że nie pasuje mu token CSRF i też w związku z tym oleje.
Rozumiem, że to tak jakbym wysłał zapytanie do DB z poziomu API (restowego) i otrzymuję jakiegoś JSONa. Takim klientem może być webscraper, który odpytuje serwer w innej domenie - tak jak to robią porównywarki cenowe. Później sobie serializujesz tego JSONa i wyświetlasz, albo pchasz do innego serwisu.
Usunąć wpis?
Tej operacji nie będzie można cofnąć.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.