{"id":10638,"date":"2023-02-19T10:33:29","date_gmt":"2023-02-19T09:33:29","guid":{"rendered":"https:\/\/dhosting.pl\/pomoc\/?post_type=manual_kb&#038;p=10638"},"modified":"2023-05-18T15:49:45","modified_gmt":"2023-05-18T13:49:45","slug":"czym-jest-cors-i-jak-dziala","status":"publish","type":"manual_kb","link":"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/czym-jest-cors-i-jak-dziala\/","title":{"rendered":"Czym jest CORS i jak dzia\u0142a?"},"content":{"rendered":"<p><strong>CORS<\/strong> to skr\u00f3t od <strong>Cross-Origin Resource Sharing<\/strong>, czyli mechanizmu umo\u017cliwiaj\u0105cego bezpieczny dost\u0119p do zasob\u00f3w mi\u0119dzy r\u00f3\u017cnymi \u017ar\u00f3d\u0142ami. Oznacza to, \u017ce strona internetowa mo\u017ce za\u0142adowa\u0107 zasoby (np. skrypty, obrazy czy style CSS) z innej domeny, ale tylko wtedy, gdy ta domena wyrazi na to zgod\u0119.<\/p>\n<p>Dlaczego potrzebujemy mechanizmu <strong>CORS<\/strong>? Ot\u00f3\u017c, bez niego przegl\u0105darki blokuj\u0105 \u0142adowanie zasob\u00f3w z innych domen, poniewa\u017c uwa\u017caj\u0105 to za potencjalne zagro\u017cenie bezpiecze\u0144stwa. Jednak\u017ce, w dzisiejszych czasach strony internetowe coraz cz\u0119\u015bciej korzystaj\u0105 z zewn\u0119trznych bibliotek, narz\u0119dzi czy innych us\u0142ug, kt\u00f3re wymagaj\u0105 pobrania zasob\u00f3w z innych \u017ar\u00f3de\u0142.<\/p>\n<p>Jak dzia\u0142a <strong>CORS<\/strong>? W momencie, gdy przegl\u0105darka pr\u00f3buje za\u0142adowa\u0107 zas\u00f3b z innej domeny, wysy\u0142a ona \u017c\u0105danie do serwera, na kt\u00f3rym znajduje si\u0119 dany zas\u00f3b. W odpowiedzi serwer mo\u017ce zwr\u00f3ci\u0107 nag\u0142\u00f3wek <strong>Access-Control-Allow-Origin<\/strong>, kt\u00f3ry okre\u015bla, czy dany adres IP ma zezwolenie na pobranie danego zasobu. Je\u015bli adres IP znajduje si\u0119 na li\u015bcie zaakceptowanych, to przegl\u0105darka pobiera zas\u00f3b i umo\u017cliwia jego wykorzystanie na stronie internetowej.<\/p>\n<p>Je\u015bli chodzi o bezpiecze\u0144stwo, mechanizm <strong>CORS<\/strong> stosuje kilka zasad. Przede wszystkim, zasoby pobierane z innych domen nie maj\u0105 dost\u0119pu do \u017cadnych prywatnych informacji, takich jak ciasteczka czy dane logowania. Dodatkowo, serwer mo\u017ce zezwoli\u0107 tylko na konkretne metody HTTP (np. GET, POST), co ogranicza ryzyko atak\u00f3w.<\/p>\n<p>Warto tak\u017ce wspomnie\u0107, \u017ce istniej\u0105 dwa rodzaje \u017c\u0105da\u0144 <strong>CORS<\/strong> &#8211; prosty i z\u0142o\u017cony. \u017b\u0105danie prosty to \u017c\u0105danie, kt\u00f3re spe\u0142nia okre\u015blone kryteria (np. metoda HTTP to GET, a nie POST), co oznacza, \u017ce przegl\u0105darka nie wysy\u0142a dodatkowych nag\u0142\u00f3wk\u00f3w. \u017b\u0105danie z\u0142o\u017cone natomiast wymaga dodatkowych nag\u0142\u00f3wk\u00f3w, takich jak Content-Type czy Authorization, co oznacza, \u017ce przegl\u0105darka musi wys\u0142a\u0107 \u017c\u0105danie preflight, czyli przedwst\u0119pne, by upewni\u0107 si\u0119, \u017ce serwer przyjmie to \u017c\u0105danie.<\/p>\n<div class=\"info-alert-format\">\n<p>Podsumowuj\u0105c, mechanizm <strong>CORS<\/strong> to wa\u017cne narz\u0119dzie, kt\u00f3re umo\u017cliwia bezpieczne pobieranie zasob\u00f3w z innych \u017ar\u00f3de\u0142. Dzi\u0119ki niemu strony internetowe mog\u0105 korzysta\u0107 z zewn\u0119trznych bibliotek czy innych narz\u0119dzi, co przyczynia si\u0119 do zwi\u0119kszenia ich funkcjonalno\u015bci.<\/p>\n<\/div>\n","protected":false},"author":6,"featured_media":10957,"parent":0,"menu_order":0,"template":"","format":"standard","manualknowledgebasecat":[121,118],"manual_kb_tag":[3339,3338,3342,3340,655,3341,3517,3516],"class_list":["post-10638","manual_kb","type-manual_kb","status-publish","format-standard","has-post-thumbnail","hentry","manualknowledgebasecat-inne","manualknowledgebasecat-pozostale","manual_kb_tag-co-to-cors","manual_kb_tag-cors","manual_kb_tag-czemu-sluzy-cors","manual_kb_tag-czym-jest-cors","manual_kb_tag-hosting","manual_kb_tag-jak-dziala-cors","manual_kb_tag-polski-hosting","manual_kb_tag-web-hosting"],"_links":{"self":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/10638","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb"}],"about":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/types\/manual_kb"}],"author":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/users\/6"}],"version-history":[{"count":0,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/10638\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media\/10957"}],"wp:attachment":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media?parent=10638"}],"wp:term":[{"taxonomy":"manualknowledgebasecat","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manualknowledgebasecat?post=10638"},{"taxonomy":"manual_kb_tag","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb_tag?post=10638"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}