CORS w pigułce 🔥 działanie i naprawa

Поділитися
Вставка
  • Опубліковано 19 жов 2024

КОМЕНТАРІ • 41

  • @jcubic
    @jcubic 3 роки тому +9

    Trochę nie do końca się zgadzam z definicją CORS. każda przeglądarka blokuje zapytania między różnymi origin, a CORS właśnie umożliwia dzielenie się tymi zasobami a nie blokuje te zasoby. Blokowanie jest w każdej przeglądarce od zawsze (od kiedy wszedł AJAX).

  • @nadzeyamolchan5627
    @nadzeyamolchan5627 Рік тому +1

    "Zobacz ty frontend deweloperze, tutaj wszystko działa..." leże na dechach ze śmiechu! życiowa sytuacja 🤣

    • @ArturChmaro
      @ArturChmaro  Рік тому

      Oj tak, wspomniałem o tym bo sam miałem parę identycznych sytuacji :D

  • @misiu475
    @misiu475 Рік тому

    miodzio materiał i już wiem jak laravela naprawić swojego ❤😂

  • @erykwks
    @erykwks 3 роки тому +5

    Więcej takich krótkich materiałów na jeden temat!

  • @MrLucki001
    @MrLucki001 3 роки тому +1

    WINCYJ takich krotkich acz tresciwych filmikow 😎

  • @dzienisz
    @dzienisz 2 роки тому

    Jest to jedno z najczęściej zadawanych przeze mnie pytań rekrutacyjnych ;)

  • @damianlis6357
    @damianlis6357 3 роки тому +2

    Dzięki Artur za proste wyjaśnienie :)

  • @goodcode6430
    @goodcode6430 2 роки тому

    Dzięki za pomoc

  • @objectObject212
    @objectObject212 3 роки тому +1

    Dzieki! extra materiał

  • @grzegorzpaprzycki846
    @grzegorzpaprzycki846 3 роки тому

    Dzięki wielkie :)

  • @DRM404
    @DRM404 3 роки тому

    Super :)

  • @hunger997
    @hunger997 3 роки тому

    I wszystko jasne.

  • @chromek9812
    @chromek9812 3 роки тому

    Wartościowy materiał to też komentarz dla zasięgów jest :D

  • @optymalista
    @optymalista 3 роки тому

    Jak nie macie możliwości ustawienia corsów na backendzie możecie użyć servera proxy który symuluje/zastępuje odpowiedni adres ( w React to jedna linijka kodu)

    • @dominikwodarczyk6714
      @dominikwodarczyk6714 3 роки тому +1

      Z tego co wiem takie rozwiązanie działa ale tylko na develop :c

  • @msnataliamilk
    @msnataliamilk 3 роки тому

    fajne wyjaśnienie! 6:30 skoro można wyłączyć politykę cors w przeglądarce to po wyłączeniu można wykonywać już zapytania do innych originów? Jeżeli tak to po co ten cors skoro można go wyłączyć i łatwo go obejść?

    • @ArturChmaro
      @ArturChmaro  3 роки тому

      Można samemu u siebie go wyłączyć, ale 99,9% użytkowników internetu i tak ma go domyślnie włączonego w przeglądarce. Wyłączanie cors ma tylko sens przy jakiś developerskich testach. Ciężko mi sobie wyobrazić sytuacje by prosić użytkowników o wyłączenie CORS bo coś nie działa :P

  • @Sheppard30
    @Sheppard30 2 роки тому

    Nie powiedziales o najwazniejszym. Jak skoro to bekend wysyla headery ale Ty nie mozesz odpytac bekendu to skad je bierzesz? Warto byloby wspomniec o OPTIONS

  • @zbigniewjaryst2873
    @zbigniewjaryst2873 3 роки тому +1

    Czy można się spodziewać filmu o credentials oraz http cookies?

    • @ArturChmaro
      @ArturChmaro  3 роки тому +2

      Spróbuję coś zmonotować w wolnym czasie :)

  • @wotan91
    @wotan91 3 роки тому +2

    Masz ode mnie subskrypcje, ale na przyszłość ograniczyłbym wstęp i "dowcipy", bo film zaczyna się od 1:00.

    • @ArturChmaro
      @ArturChmaro  3 роки тому

      Popracuje nad dowcipami albo wstępami 😅

  • @caro.girlwithflowers
    @caro.girlwithflowers Рік тому

    Dlaczego gdy ustawiasz jednego origina i credentials na true to zapytanie działa, po czym zmieniasz origina na * , wówczas credentials powoduje błąd (to wyjaśniłeś, dziękuję), po czym ponownie ustawiasz konkretnego origina i ustawiasz credentials na true i już nie działa? cos koło 4:30 ;)

    • @ArturChmaro
      @ArturChmaro  Рік тому

      W 4:36 wyłączyłem (przez zakomentowanie) header "Allow Credentials" po czym zrobiłem testowe zapytanie z credentials: true. Spowodowało to wyrzucenie błędu. To było zamierzone. Dzieje się tak ponieważ CORS pozwala nam nie tylko na kontrolę które originy są dozwolne, ale właśnie też sposobem w jakim te originy mogą się komunikować. Czasami ze względów bezpieczeństwa zabrania się komunikacji z określonymi headerami lub właśnie bez credentials: true

  • @hunger997
    @hunger997 3 роки тому

    Czy dobrze rozumiem, że jeśli tylko backend nie 'zezwala wszystkim', to domyślne zachowanie przeglądarki eliminuje z automatu ryzyko CSRF?

    • @ArturChmaro
      @ArturChmaro  3 роки тому

      Generalnie tak, ale trzeba to trochę uściślić. Przeglądarka nie eliminuje Ci całkowicie ryzyka CSRF. Jak komuś uda się zforgować zapytanie HTTP na ten sam origin to przeglądarka nie pomoże (np przy podatności XSS w Twojej apce). Warto więc też dodatkowo stosować tokeny CSRF w formularzach.
      Przeglądarka eliminuje ryzyko CSRF do obcego/innego originu jeżeli ten jest prawidłowo skonfigurowany.

  • @krychaxp
    @krychaxp 3 роки тому

    zauważyłem, że błąd cors'ow jest pomiędzy frontend-backend lub frontend-frontend. A jeśli jest zapytanie backend-backend to corsy wtedy nie działają, czy jak? I wtedy nawet jak jest podany Allow Origin (inny niż nasz backend oczywiście) to zapytanie nadal jest zezwalane/wykonywane ;/

    • @ArturChmaro
      @ArturChmaro  3 роки тому +2

      CORS działa tylko w przeglądarce, w momencie gdy mamy zapytanie między jednym originem a drugim. Dlaczego tylko w przeglądarce? Bo przeglądarka ma mechanizm który sprawdza nagłówki cors. Jak masz zapytanie backend- backend albo korzystasz z CURL to tam to nie jest w żaden sposób sprawdzane 🙂

  • @mk_games_official
    @mk_games_official 3 роки тому

    oj jak to mnie... ***. Na szczęście są skróty do chroma pozwalające to wyłączyć.. tzn uruchomić skrót bez Corsa

  • @count_of_pizza
    @count_of_pizza 3 роки тому

    Czy Docker eliminuje takie problemy z defaultu?

    • @ArturChmaro
      @ArturChmaro  3 роки тому

      Docker nie ma tutaj nic do rzeczy 🙂 W dockerze możesz odpalić kontener z aplikacja backendowa np nodejs albo django i tam konfigurujesz kwestie związane z cors

  • @lukilapaj
    @lukilapaj 3 роки тому

    Czy da się rozwiązać problem z zewnętrznym API które ma "źle" ustawionego CORSa w wersji produkcyjnej aplikacji? Dodatek do przeglądarki średnio jest rozwiązaniem w takiej sytuacji.

    • @ArturChmaro
      @ArturChmaro  3 роки тому

      Tylko po stronie API możesz to rozwiązać. Nie ma innej możliwości

    • @IpatrykPl
      @IpatrykPl 3 роки тому +1

      Jest inna możliwość. Można zrobić proxy dla API zewnętrznego

    • @lukilapaj
      @lukilapaj 3 роки тому

      @@IpatrykPl niby tak, tylko wydaje się to średnio produkcyjne rozwiązanie, chyba, że już naprawdę nie ma innej opcji to akurat o tym wiem.

    • @ArturChmaro
      @ArturChmaro  3 роки тому +1

      @@IpatrykPl oczywiście też można tak zrobić, ale traktowałbym to naprawdę jako ostateczność. Nie spotkałem się jeszcze z sytuacją aby nie dało się ustawić corsow i dogadać z innym zespołem / klientem by to skonfigurowali. Proxy to dodatkowy element którym musisz zarządzać (maintenance, monitoring, aktualizacja, ujęcie w procesie deploya). Lepiej sobie nie dokładać takich zmartwień 🙂

    • @IpatrykPl
      @IpatrykPl 3 роки тому

      @@ArturChmaro tak, masz rację. To ostateczność, ale czasami konieczność

  • @miauuuuofcat4535
    @miauuuuofcat4535 3 роки тому

    Film jest długi a CORS to w zasadzie prosty mechanizm. Dzięki CORS możemy wykonywać zapytania z innego ORIGIN’A na serwer http. W tym celu stosujemy header Acess-Control-Allow-Origin: origin=adress URL z którego się możemy się łączyć z serwerem http (przez API) / * (wildcard) akceptuje zapytania ze wszystkich originów

  • @kubaleman3440
    @kubaleman3440 3 роки тому +1

    developerką xD dajcie spokój z tą Waszą śmieszną poprawnością

    • @ArturChmaro
      @ArturChmaro  3 роки тому +2

      Daleko mi do śmiesznej poprawności 😉