Ders 2.4: Aynı köken ilkesi ve CORS
Tarayıcının içinde web sitelerini birbirinden ayıran kural: aynı köken ilkesi. Kökenin ne olduğu, başka bir sitenin bankana neden istek gönderebildiği ama yanıtları neden okuyamadığı ve CORS'un bir sunucunun bu kuralı bilerek gevşetmesine nasıl izin verdiği. Sonra klasik hata: herhangi bir ziyaretçinin Origin değerini Access-Control-Allow-Origin başlığına kopyalayan ve çerezlere izin veren bir API; böylece her web sitesi giriş yapmış bir müşterinin verisini okuyabilir. Laboratuvarda bunu mağazanın kendi API'sinde buluyor, buna yol açan PHP satırını okuyor, düzeltiyor, sözdizimini kontrol ediyor ve düzeltmeyi curl ile kanıtlıyorsun.
18 dk
Bu derste öğreneceklerin
- Kökeni ve aynı köken ilkesini tanımlamak
- CORS'un neye izin verdiğini ve neye vermediğini açıklamak
- Access-Control-* yanıt başlıklarını okumak
- Kökeni yansıtan bir CORS yanlış yapılandırmasını tanımak
- İzin listesiyle düzeltmek ve düzeltmeyi kanıtlamak
Temel terimler
- Köken
- Bir sayfanın şeması, makine adı ve portu birlikte. İki URL'nin kökeni ancak üçü de aynıysa aynıdır.
- Aynı köken ilkesi (SOP)
- Bir betiğin yalnızca kendi kökeninden gelen yanıtları okuyabileceğini söyleyen tarayıcı kuralı.
- CORS (kökenler arası kaynak paylaşımı)
- Cross-Origin Resource Sharing: bir sunucunun, hangi diğer kökenlerin yanıtlarını okuyabileceğini tarayıcıya söylediği yanıt başlıkları.
- Kimlik bilgileri
- CORS'ta: kökenler arası bir istekle gönderilen çerezler ve HTTP kimlik doğrulaması. Yalnızca Access-Control-Allow-Credentials: true ve adıyla belirtilmiş bir kökenle izin verilir, asla * ile değil.
- Ön kontrol isteği
- Tarayıcının olağan dışı kökenler arası istekler (başka yöntemler ya da özel başlıklar) için önce gönderdiği ve asıl isteğe izin verilip verilmediğini sunucuya soran OPTIONS isteği.
- İzin listesi
- Tam olarak neye izin verildiğinin listesi; geri kalan her şey reddedilir.
← MAC adresleri, Ethernet ve ARP · Tüm dersler · Saldırı yüzeyi: bir sisteme açılan her kapı →