CORS Denetleyicisi

Yapıştırılmış yanıtın belirli bir tarayıcı kaynak, yöntem ve istek başlıklarına izin verip vermediğini kontrol edin.

Kontrol için yanıt
Ön kontrol yanıtını denetlerken durum satırını da yapıştırın.
Şema, ana bilgisayar ve isteğe bağlı port Origin başlığında gönderilir.
Çerez veya HTTP kimlik doğrulaması içeren talepler için aç.
Tarayıcı kararı

    Ayrıştırılmış Erişim-Kontrol Alanları

    HTTP status
    Access-Control-Allow-Origin
    Access-Control-Allow-Credentials
    Access-Control-Allow-Methods
    Access-Control-Allow-Headers
    Access-Control-Expose-Headers
    Access-Control-Max-Age

    Bir yanıt girin ve detayları talep edin, ardından CORS politikasını kontrol edin.

    Bir yanıt yapıştırarak CORS politikasını kontrol edin.

    Başlıklarınız ve istek detaylarınız tarayıcınızda kalır. BroBroGo'ya hiçbir şey yüklenmiyor veya kaydedilmiyor.

    SSS

    Gerçek yanıtı mı, yoksa ön kontrol yanıtını mı yapıştırmalıyım?

    Tarayıcı kodunun bir yanıtı okuyup okuyamadığını denetlemek için Gerçek yanıtı kullanın. Daha sonra gönderilecek yönteme ve istek başlıklarına izin veren OPTIONS yanıtı için Ön kontrol yanıtını kullanın.

    Neden bir wildcard kimlik bilgileriyle başarısız olabilir?

    Çerezler veya HTTP doğrulama dahil edildiğinde, izin verilen kaynak tam olarak talep edilen kaynakla eşleşmelidir. İzin verilen yöntemler ve başlıklar için kullanılan joker kartlar da joker anlamını kaybeder.

    Geçme sonucu canlı isteğin işe yarayacağını kanıtlar mı?

    Hayır. Bu sonuç yalnızca yapıştırılmış yanıtı ve buraya girilen istek detaylarını kapsar. Yönlendirmeler, önbelleğe alınmış yanıtlar, sunucu kurallarının değişmesi, tarayıcı uzantıları ve ön deneme sonrası gerçek yanıt yine de sonucu değiştirebilir.

    CORS Politikası ve Tarayıcı Kararlarını Anlamak

    Cross-Origin Resource Sharing (CORS), web tarayıcılarının bir web sayfasından farklı bir kökene (origin) yapılan istekleri güvenli bir şekilde yönetmesini sağlayan bir mekanizmadır. Tarayıcılar, güvenlik nedeniyle varsayılan olarak farklı kökenler arasındaki kaynak paylaşımını kısıtlar. Bir web uygulamasının dış kaynaklara erişip erişemeyeceği, sunucudan dönen HTTP yanıt başlıklarına ve tarayıcının uyguladığı CORS kurallarına bağlıdır.

    CORS Denetleyicisi, sağladığınız HTTP yanıt başlıklarını ve istek detaylarını analiz ederek tarayıcının ilgili isteğe izin verip vermeyeceğini belirler. Bu araç, sunucu yapılandırmasını değiştirmeden veya canlı istekler göndermeden önce CORS politikalarının doğruluğunu test etmenizi sağlar.

    CORS Analizinde Girdi Parametreleri

    CORS Denetleyicisi, tarayıcı davranışını simüle etmek için belirli girdilere ihtiyaç duyar. Doğru bir analiz için aşağıdaki alanların doldurulması gerekir:

    • Kontrol için yanıt: Analiz edilecek yanıt türünü seçin. Bu seçenek "Gerçek yanıt" veya "Ön kontrol yanıtı" olabilir.
    • HTTP Yanıt başlıkları: Sunucudan dönen HTTP yanıt başlıklarını içeren metin alanıdır. Ön kontrol yanıtlarını denetlerken durum satırının da bu alana dahil edilmesi gerekir. Bu alan en fazla 200.000 karakter kabul eder. Boş bırakılması durumunda "Kontrol etmeden önce yanıt başlıklarını yapıştırın HTTP" hatası verilir. Girişin çok büyük olması durumunda "Bu tepki alışılmadık derecede büyüktür. Karakteri ‹max› altında tut." uyarısı gösterilir. Geçersiz bir satır girildiğinde "‹line› satır, geçerli bir HTTP başlığı veya durum satırı değildir." hatası, geçersiz bir başlık adı girildiğinde ise "‹line› satırda geçersiz bir HTTP başlık adı bulunur." hatası tetiklenir.
    • İstek kaynağı: İstekte bulunacak kökenin şema, ana bilgisayar ve isteğe bağlı port bilgisini içerir. Giriş formatı https://app.example.com şeklinde olmalıdır. Sadece saf bir köken veya null kabul edilir; URL yolu, sorgu parametreleri veya kimlik bilgileri içeremez. Hatalı girişlerde "Sadece bir şema, ana bilgisayar ve isteğe bağlı port, örneğin https://app.example.com içeren bir orijin girin." uyarısı verilir.
    • İstenen yöntem: İstekte kullanılacak HTTP yöntemidir. Geçersiz bir yöntem girildiğinde "Geçerli bir HTTP yöntem tokenı girin." hatası oluşur. Tarayıcı tarafından engellenen bir yöntem girildiğinde ise "Tarayıcılar ‹method› yöntemini getirme isteklerinde izin vermez." uyarısı gösterilir.
    • İstenen başlık adları: Access-Control-Request-Headers başlığında gönderilecek, virgül veya satırlarla ayrılmış başlık adlarıdır. Örnek format Content-Type, Authorization şeklindedir. Geçersiz bir başlık adı girildiğinde ""‹header›" geçerli bir HTTP isteği başlığı adı değildir." hatası gösterilir.
    • Kimlik bilgilerini dahil edin: İstekte çerezlerin veya HTTP kimlik doğrulama bilgilerinin yer alıp almadığını belirten bir seçenektir.

    Tarayıcı Kararları ve Değerlendirme Kriterleri

    Araç, girilen verileri analiz ettikten sonra tarayıcının vereceği kararı ve bu kararın gerekçelerini listeler.

    Tarayıcı Karar Durumları

    • Yapıştırılmış CORS yanıtıyla izin verildi.: Sunucu başlıkları ve istek detayları CORS kurallarına tamamen uygundur.
    • Yapıştırılmış CORS yanıtıyla engellendim.: Sunucu başlıkları isteğin gerçekleştirilmesine izin vermemektedir.
    • Başlıklar geçerli, ancak ön kontrol durumu bilinmiyor.: Başlıklar kurallara uygundur ancak ön kontrol durum satırı eksik olduğu için kesin karar verilememiştir.
    • Bir yanıt girin ve detayları talep edin, ardından CORS politikasını kontrol edin.: Gerekli girdiler eksik olduğunda gösterilir.
    • Bir yanıt yapıştırarak CORS politikasını kontrol edin.: Aracın ilk açılış durumunu ifade eder.

    Karar Gerekçeleri ve Açıklamalar

    Durum / Başlık Tespit Edilen Durum ve Gerekçe
    Origin Eşleşmesi "Access-Control-Allow-Origin tam olarak ‹origin› eşleşiyor."<br>"Access-Control-Allow-Origin bu isteğin herhangi bir kaynağına izin veriyor."<br>"Access-Control-Allow-Origin eksik."<br>"Access-Control-Allow-Origin kimlik bilgileri dahil edildiğinde * olamaz."<br>"Access-Control-Allow-Origin ‹actual›, ‹expected› değil."<br>"Access-Control-Allow-Origin geçersiz bir değere sahiptir: ‹value›."
    Kimlik Bilgileri "Access-Control-Allow-Credentials tamamen doğru."<br>"Yetkili bir istek Access-Control-Allow-Credentials gerektirir: doğru."<br>"Kimlik bilgileri dahil edilmediği için Access-Control-Allow-Credentials bu kararı etkilemez."
    Ön Kontrol Durumu "Ön kontrol durumu ‹status› başarılı."<br>"Ön kontrol durumu ‹status›, başarılı bir 2xx durumu değil."<br>"HTTP durum satırı yapıştırılmadığından gerekli 2xx ön kontrol durumu denetlenemiyor."
    İzin Verilen Yöntemler "Ön kontrol ‹method› yöntemine izin veriyor."<br>"‹method›, CORS güvenli listesindeki bir yöntemdir ve Access-Control-Allow-Methods içinde yer alması gerekmez."<br>"Access-Control-Allow-Methods, ‹method› yöntemine izin vermiyor."
    İzin Verilen Başlıklar "İstenen başlık adları için ön kontrol onayı gerekmiyor."<br>"Ön kontrol şu istek başlıklarına izin veriyor: ‹headers›."<br>"Access-Control-Allow-Headers: * kimlik bilgileri olmadan yapılan talepler için bu isimleri kaplar: ‹headers›."<br>"Access-Control-Allow-Headers izin vermez: ‹headers›."<br>"Authorization açıkça listelenmelidir; Access-Control-Allow-Headers: * kapsamamıyor."

    CORS Kuralları ve Kritik Sınırlar

    CORS mekanizmasının uygulanmasında tarayıcıların katı kuralları ve bazı özel durumları vardır:

    • Kimlik Bilgileri ve Joker Karakter Kısıtlaması: İstek kimlik bilgileri (çerezler veya HTTP kimlik doğrulaması) içeriyorsa, Access-Control-Allow-Origin başlığı joker karakter (*) içeremez. Bu durumda izin verilen kökenin, istek kaynağı ile tam olarak eşleşmesi gerekir. Ayrıca, kimlik bilgileri dahil edildiğinde yöntemler ve başlıklar için kullanılan joker karakterler de joker olma özelliğini kaybeder.
    • Çoklu Origin Geçersizliği: Access-Control-Allow-Origin başlığı birden fazla değer içeriyorsa veya virgülle ayrılmış birden fazla köken barındırıyorsa, tarayıcı tarafından geçersiz kabul edilir.
    • Kimlik Doğrulama Başlığı İstisnası: Authorization başlığı özel bir statüye sahiptir. İstekte kimlik bilgileri olmasa bile, Access-Control-Allow-Headers: * kullanımı Authorization başlığını kapsamaz. Bu başlığın Access-Control-Allow-Headers içinde açıkça adıyla listelenmesi zorunludur.
    • Ön Kontrol Durum Kodu: Bir ön kontrol (preflight) isteğinin başarılı sayılabilmesi için sunucunun 2xx başarılı durum koduyla yanıt vermesi gerekir. Eğer yapıştırılan ön kontrol yanıtında HTTP durum satırı bulunmuyorsa, durum kontrolü yapılamaz ve sonuç belirsiz kalır.

    Gizlilik ve İşlem Güvenliği

    CORS Denetleyicisi tamamen istemci tarafında çalışan bir araçtır. Yapıştırdığınız HTTP yanıt başlıkları ve girdiğiniz istek detayları tarayıcınızda işlenir. Verileriniz hiçbir harici sunucuya yüklenmez ve BroBroGo tarafından kaydedilmez. Araç, analiz gerçekleştirmek için herhangi bir sunucuyla iletişim kurmaz, harici URL'leri okumaz, çerez tanımlamaz veya DNS/TLS kontrolleri yapmaz.

    Sıkça Sorulan Sorular

    Gerçek yanıtı mı, yoksa ön kontrol yanıtını mı yapıştırmalıyım?

    Tarayıcı kodunun bir yanıtı okuyup okuyamadığını denetlemek için Gerçek yanıtı kullanın. Daha sonra gönderilecek yönteme ve istek başlıklarına izin veren OPTIONS yanıtı için Ön kontrol yanıtını kullanın.

    Neden bir wildcard kimlik bilgileriyle başarısız olabilir?

    Çerezler veya HTTP doğrulama dahil edildiğinde, izin verilen kaynak tam olarak talep edilen kaynakla eşleşmelidir. İzin verilen yöntemler ve başlıklar için kullanılan joker kartlar da joker anlamını kaybeder.

    Geçme sonucu canlı isteğin işe yarayacağını kanıtlar mı?

    Hayır. Bu sonuç yalnızca yapıştırılmış yanıtı ve buraya girilen istek detaylarını kapsar. Yönlendirmeler, önbelleğe alınmış yanıtlar, sunucu kurallarının değişmesi, tarayıcı uzantıları ve ön deneme sonrası gerçek yanıt yine de sonucu değiştirebilir.