CORS Kontrol Aracı
Herhangi bir URL için Çapraz Kaynak Paylaşımı (CORS) yapılandırmasını kontrol edin. Access-Control-* yanıt başlıklarını inceleyin, özel Origin/yöntem/başlıklarla isteğe bağlı bir ön kontrol (OPTIONS) isteği çalıştırın ve joker karakter + kimlik bilgileri, eksik Vary: Origin veya aşırı geniş allow-headers gibi yaygın yanlış yapılandırmaları tespit edin.
Özellikler
- Herhangi bir genel URL için CORS başlık incelemesi (Access-Control-* ve ilgili başlıklar).
- Özel Origin, istek yöntemi ve istek başlıklarıyla isteğe bağlı ön kontrol simülasyonu (OPTIONS).
- Yönlendirmeleri takip edin (en fazla 10) böylece tarayıcıların gerçekten ulaştığı son noktayı doğrulayın.
- Tam şeffaflık ve hata ayıklama için ham başlıklar görünümü.
- Hızlı triaj için "sadece sorunlar" filtrelemesiyle bulgular + puan kartı.
- Eksik Vary: Origin ve diğer önbellek ile ilgili CORS tuzaklarını tespit etmek için Vary analizi.
- Denetimler, biletler ve belgeleme için sonuçları JSON ve PDF raporları olarak dışa aktarın.
- Yaygın sorunlar için yerleşik öneriler: joker karakter+kimlik bilgileri, Origin yansıtma, null Origin, eksik allow-methods/allow-headers, eksik max-age ve aşırı geniş allow-headers.
🧭 Nasıl kullanılır for cors-checker
Hedef URL'yi girin
Test etmek istediğiniz uç noktayı yapıştırın (örneğin, https://api.example.com/resource).
Test ettiğiniz Origin'i ayarlayın
Ön uç uygulamanızın Origin'ini (şema + ana bilgisayar) girin, örneğin https://app.example.com. Bu, tarayıcıların Origin başlığında gönderdiği değerdir.
Bir kontrol modu seçin
Hem yanıt başlıklarını hem de ön kontrol davranışını analiz etmek için Otomatik'i (önerilen) kullanın. Özel olarak ön kontrol olmayan bir senaryo istiyorsanız Basit istek'i veya OPTIONS kontrolleri çalıştırmak için Sadece ön kontrol'ü kullanın.
Ön kontrol detaylarını yapılandırın (uygulanabilirse)
"Ön Kontrol Çalıştır (OPTIONS)" özelliğini etkinleştirin ve gerçek tarayıcı ön kontrol davranışını simüle etmek için İstek Yöntemi ve İstek Başlıklarını (virgülle ayrılmış) ayarlayın (örneğin, yetkilendirme, içerik türü). Kullanım durumunuz çerezler veya kimlik doğrulama başlıkları içeriyorsa "Kimlik bilgilerini dikkate al" seçeneğini açın.
Bulguları gözden geçirin ve dışa aktarın
Bulgular/puan kartını ve CORS analiz detaylarını kontrol edin. Hata ayıklarken "Ham Başlıkları Göster" seçeneğini açın. Paylaşım veya denetimlerde saklamak için JSON/PDF olarak dışa aktarın.
Teknik özellikler
İstek modeli
Araç, bir hedef URL için CORS başlıklarını inceler ve isteğe bağlı olarak sağlanan Origin, yöntem ve istenen başlıkları kullanarak bir ön kontrol (OPTIONS) isteği gerçekleştirebilir. Yönlendirme takibi desteklenir.
| Ayar | Davranış | Varsayılan |
|---|---|---|
| Kontrol Modu | Otomatik, Basit istek veya Yalnızca Ön Kontrol | Otomatik |
| Ön Kontrol Çalıştır (OPTIONS) | Etkinse, bir OPTIONS ön kontrol simülasyonu gerçekleştirir | Etkin |
| Origin | Analiz/ön kontrol için kullanılan Origin başlık değeri | https://example.com |
| İstek Metodu | Ön kontrol için Access-Control-Request-Method değeri | GET |
| İstek Başlıkları | Ön kontrol için Access-Control-Request-Headers (virgülle ayrılmış) | Boş |
| Yönlendirmeleri Takip Et | Son URL'ye kadar yönlendirme zincirini takip eder | Etkin |
| Maksimum Yönlendirme | Döngüleri önlemek için yönlendirme sınırı | 10 (aralık 0–20) |
| Zaman Aşımı | İstek zaman aşımı sınırı | 15000 ms |
| Kullanıcı Aracısı | İstek kullanıcı aracısını tanımlar | Encode64Bot/1.0 (+https://encode64.com) |
| Özel ağlar | Güvenlik için özel ağ aralıklarına erişimi engeller | Devre dışı (özel ağlara izin verilmez) |
Analiz edilen başlıklar (temel CORS seti)
Analizci, tarayıcılar ve ön kontroller tarafından kullanılan standart CORS yanıt ve istek başlıklarına odaklanır.
| Başlık | Amaç |
|---|---|
| Access-Control-Allow-Origin | Hangi Origin(lere) izin verildiği |
| Access-Control-Allow-Credentials | Çerezler/kimlik bilgilerine izin verilip verilmediği (joker olmayan origin gerektirir) |
| Access-Control-Allow-Methods | Çapraz kaynak istekleri için izin verilen yöntemler (ön kontrol için önemli) |
| Access-Control-Allow-Headers | İzin verilen başlıklar (Yetkilendirme ve özel başlıklar için önemli) |
| Access-Control-Expose-Headers | Tarayıcı JS tarafından okunabilen başlıklar |
| Access-Control-Max-Age | Ön kontrolün tarayıcı tarafından ne kadar süre önbelleğe alınabileceği |
| Vary | Önbellek anahtarı varyasyonu (örn. Vary: Origin) önbellek zehirlenmesi/karışmasını önlemek için |
| Origin / Access-Control-Request-* | Ön kontrol davranışını simüle etmek için kullanılır |
Buluşsal Yöntemler (yaygın CORS tuzakları işaretlenir)
Bulgular, bozuk veya riskli CORS kurulumlarını tespit etmek için pratik ve güvenlik odaklı kontrollere dayanmaktadır.
| Kontrol | Neden önemli |
|---|---|
| Joker karakter + kimlik bilgileri | Access-Control-Allow-Origin: * kimlik bilgileriyle kullanılamaz; tarayıcılar engeller veya davranış güvensizdir |
| Eksik Vary: Origin | Yanıtlar Origin'e göre değişiyorsa ancak doğru önbelleğe alınmıyorsa, paylaşılan önbellekler yanıtları siteler arasında karıştırabilir |
| Origin Yansıtma | Origin'i körü körüne yankılamak, güvenilmeyen kaynaklara istemeden izin verebilir |
| Null Origin uyarıları | Origin: null, korumalı iframe'lerde veya dosya bağlamlarında görünebilir; buna izin vermek genellikle risklidir |
| Eksik Allow-Methods / Allow-Headers | Sunucu yöntem/başlıkları açıkça izin vermezse ön kontrol başarısız olabilir |
| Aşırı Geniş Allow-Headers | Çok fazla başlığa izin vermek saldırı yüzeyini genişletebilir |
| Eksik Max-Age | Ön kontrol çok sık çalışabilir, gecikme ekler |
Komut satırı
Terminalinizden CORS ve ön kontrol davranışını yeniden oluşturmak için bu komutları kullanın. Hata ayıklama ve aracın raporladıklarını doğrulama için faydalıdırlar.
macOS / Linux
Normal bir istek için CORS başlıklarını kontrol edin (bir tarayıcı Origin'ini simüle edin)
curl -i -H "Origin: https://example.com" https://api.example.com/resourceAccess-Control-Allow-Origin, Access-Control-Allow-Credentials ve Vary'yi arayın.
Bir ön kontrol OPTIONS isteği çalıştırın (yöntem + başlıklar)
curl -i -X OPTIONS -H "Origin: https://app.example.com" -H "Access-Control-Request-Method: POST" -H "Access-Control-Request-Headers: authorization, content-type" https://api.example.com/privateÖn kontrol, tarayıcının devam etmesi için doğru Access-Control-Allow-Methods ve Access-Control-Allow-Headers'i döndürmelidir.
Başlıkları kontrol ederken yönlendirmeleri takip et
curl -iL -H "Origin: https://example.com" https://api.example.comUç noktalar farklı CORS kurallarına sahip başka bir ana bilgisayara yönlendirdiğinde kullanışlıdır.
Windows (PowerShell)
Origin başlığı ile yanıt başlıklarını incele
$r = Invoke-WebRequest -Uri https://api.example.com/resource -Headers @{ Origin = "https://example.com" }; $r.HeadersAccess-Control-* başlıkları mevcutsa görüntüler.
Kullanım durumları
Bir ön yüz "CORS engellendi" tarayıcı hatasını ayıkla
Fetch/XHR bir CORS hatası ile başarısız olduğunda, sunucunun Origin ve istek türünüz için gerekli Access-Control-* başlıklarını döndürüp döndürmediğini doğrulayın.
- Access-Control-Allow-Origin'ın uygulama kökeninizle eşleştiğini onaylayın
- Çerez/kimlik doğrulama kullanıyorsanız, Access-Control-Allow-Credentials'ın true olduğunu kontrol edin (ve köken joker karakter değil)
- Birden fazla kökene izin verirken Vary: Origin'in mevcut olduğundan emin olun
Authorization / özel başlıklar için ön kontrolü doğrula
Çoğu kimliği doğrulanmış API çağrısı, Authorization veya basit olmayan içerik türleri nedeniyle ön kontrol tetikler. Bu araç, OPTIONS yanıtlarının gerekli yöntem ve başlıklara izin verdiğinden emin olmaya yardımcı olur.
- Access-Control-Allow-Methods'in gerektiği gibi POST/PUT/PATCH/DELETE içerdiğini doğrulayın
- Access-Control-Allow-Headers'in authorization, content-type ve gerekli X-* başlıklarını içerdiğini doğrulayın
- Dağıtımdan önce eksik allow-methods/allow-headers'ı yakalayın
CORS politikasının güvenlik incelemesi
CORS yapılandırma hataları, özel API'leri (özellikle kimlik bilgileriyle) kötü niyetli sitelere yanlışlıkla açabilir. Yüksek riskli kalıpları yakalamak için bulguları kullanın.
- Kimlik bilgileriyle birleştirilmiş joker karakter kökenini tespit edin
- Rastgele sitelere izin veren yansıtıcı köken kalıplarını tespit edin
- Amaçlanmadığında Origin: null'a izin verilmesini işaretleyin
Ön kontrol önbelleklemesiyle performansı iyileştirin
Ön kontrol istekleri gidiş-dönüş ve gecikme ekler. Doğru Max-Age, kararlı API'ler için tekrarlanan ön kontrol kontrollerini azaltabilir.
- Uygun olduğunda Access-Control-Max-Age'in mevcut olduğunu doğrulayın
- Sık API trafiği için tekrarlanan OPTIONS çağrılarını azaltın
❓ Frequently Asked Questions
❓Basit terimlerle CORS nedir?
CORS (Çapraz Köken Kaynak Paylaşımı), bir kökenden (şema + ana bilgisayar + port) gelen bir web sayfasının başka bir kökenden gelen yanıtları okuyup okuyamayacağını kontrol eden bir tarayıcı güvenlik mekanizmasıdır. Belirli Access-Control-* yanıt başlıklarına dayanır.❓Bir tarayıcı ne zaman ön kontrol (OPTIONS) isteği gönderir?
❓Neden "Access-Control-Allow-Origin: *" kimlik bilgileriyle tehlikelidir?
❓Neden Vary: Origin'e ihtiyacım var?
❓CORS, tarayıcı dışı istemcilerden API'mi koruyabilir mi?
CORS tarayıcılar tarafından uygulanır. Tarayıcı dışında çalışan betikler (sunucular, curl, mobil uygulamalar) CORS'a bakılmaksızın API'nizi çağırabilir. Gerçek erişim kontrolü için kimlik doğrulama, yetkilendirme ve hız sınırlaması kullanın.❓Ön kontrol (preflight) test ederken "İstek Başlıkları"na ne yazmalıyım?
❓URL'leri buraya yapıştırmak güvenli mi?
Pro Tips
Herhangi bir Origin'i yansıtmak yerine, güvenilir kökenlerin bir izin listesini tercih edin. CORS'u güvenlik açısından hassas bir yapılandırma olarak ele alın.
Çerez/kimlik doğrulama kullanıyorsanız, Access-Control-Allow-Credentials: true ayarlayın VE açık bir köken döndürün ("*" değil).
Birden fazla kökene izin verirken veya izin verilen kökeni dinamik olarak seçerken Vary: Origin ekleyin.
Kararlı API'ler için ön kontrol gecikmesini azaltmak için makul bir Access-Control-Max-Age ekleyin.
Hem ön kontrolü hem de gerçek istek yolunu test edin; bazı kurulumlar GET için doğru başlıkları döndürür ancak OPTIONS'ta başarısız olur.
JSON raporlarını dışa aktarın ve API ağ geçidi yapılandırma değişikliklerinin yanında saklayarak gerilemeleri hızlıca tespit edin.
Additional Resources
Other Tools
- CSS Güzelleştirici
- HTML Güzelleştirici
- JavaScript Güzelleştirici
- PHP Güzelleştirici
- Renk Seçici
- Sprite Çıkarıcı
- Base32 İkili Kodlayıcı
- Base32 Çözücü
- Base32 Kodlayıcı
- Base58 İkili Kodlayıcı
- Base58 Çözücü
- Base58 Kodlayıcı
- Base62 İkili Kodlayıcı
- Base62 Çözücü
- Base62 Kodlayıcı
- Base64 İkili Kodlayıcı
- Base64 Çözücü
- Base64 Kodlayıcı
- Hex İkili Kodlayıcı
- Hex Çözücü
- Hex Kodlayıcı
- C# Biçimlendirici
- CSV Biçimlendirici
- Dockerfile Formatter
- Elm Biçimlendirici
- ENV Biçimlendirici
- Go Biçimlendirici
- GraphQL Biçimlendirici
- HCL Biçimlendirici
- INI Biçimlendirici
- JSON Biçimlendirici
- Latex Biçimlendirici
- Markdown Biçimlendirici
- ObjectiveC Biçimlendirici
- Php Formatter
- Proto Biçimlendirici
- Python Biçimlendirici
- Ruby Biçimlendirici
- Rust Biçimlendirici
- Scala Biçimlendirici
- Shell Script Biçimlendirici
- SQL Biçimlendirici
- SVG Biçimlendirici
- Swift Biçimlendirici
- TOML Biçimlendirici
- Typescript Formatter
- XML Biçimlendirici
- YAML Biçimlendirici
- Yarn Biçimlendirici
- CSS Küçültücü
- Html Minifier
- Javascript Minifier
- JSON Küçültücü
- XML Küçültücü
- Cache Headers Analyzer
- Csp Analyzer
- Dns Records Lookup
- HTTP Başlıkları Görüntüleyici
- Http Status Checker
- Open Graph Meta Checker
- Redirect Chain Viewer
- Robots Txt Tester
- Security Headers Checker
- Security Txt Checker
- Sitemap Url Inspector
- Tls Certificate Checker
- PDF'den Metne
- Regex Test Edici
- SERP Sıra Kontrolü
- Whois Sorgulama