1. CORS'un tarayıcı tasarım kusurunu telafi etmek için kullanılan geçici bir çözüm olduğunu anlayın.
- CORS (Cross-Origin Resource Sharing), çapraz kaynak isteklerde örtük kimlik bilgileri nedeniyle ortaya çıkan güvenlik sorunlarını çözer.
- Tarayıcıların varsayılan davranışı, kullanıcıları XSRF saldırılarına açık hale getirme riski taşır.
- CORS bu sorunları hafifletmeye çalışır, ancak güvenlik kapsamı açısından temel sınırlamalara sahiptir.
2. CORS, çapraz kaynak isteğinin sonucunun okunmasını engeller; ancak isteğin kendisini engellemez.
fun-games.example, your-bank.example üzerindeki verileri okuyamaz; ancak para transferi gibi durum değiştiren istekleri yine de gerçekleştirebilir.
- Bunun nedeni, tarayıcıların çerezleri ve kimlik bilgilerini varsayılan olarak ele alış biçimidir.
3. Etkili çapraz kaynak güvenliği, örtük kimlik bilgilerini yok saymakla başlar.
- Çapraz kaynak isteklerde çerezleri ve benzeri kimlik bilgilerini kaldırın veya açıkça izin verin.
- Çapraz kaynak çerezlerini filtreleyen ya da kaldıran middleware ile
Sec-Fetch-* başlıklarından yararlanın.
4. Açık kimlik bilgileri, örtük kimlik bilgilerinden daha güvenli bir alternatiftir.
- Çerezler yerine kimlik doğrulama token'ı için
Authorization başlığını kullanın.
- Açık kimlik bilgileri, kimlik bilgilerinin farklı siteler arasında kötüye kullanılmasını önler.
- Sunucu tarafında render edilen siteler için uygun değildir, ancak API'ler ve istemci tarafı uygulamaları için en iyi yöntemdir.
5. Çapraz kaynak kimlik bilgisi kullanımını sınırlamak için SameSite çerezlerini uygulayın.
- Varsayılan olarak çapraz kaynak isteklere çerez eklenmemesi için
SameSite=Lax kullanın.
- Daha katı bir politika için
SameSite=Strict seçin. Ancak bunun kullanılabilirlik üzerinde etkisi olabilir (örneğin, çapraz kaynak gezinme sonrası oturumun kapanması).
6. Basit ve güvenli bir CORS politikası benimseyin.
- Varsayılan politika:
Access-Control-Allow-Origin: * ve Access-Control-Allow-Methods: * yalnızca anonim erişime izin verir.
- Bu politika, çapraz kaynak isteklerde örtük kimlik bilgilerini devre dışı bırakarak sitenizi istenmeyen kimlik bilgisi kötüye kullanımına karşı korur.
7. Güvenlik için CORS politikasını gereğinden fazla karmaşık hale getirmeyin.
- Aşırı derecede ayrıntılı ayarlar, yanlış bir güvenlik hissi yaratabilir.
- CORS proxy'leri ve diğer geçici çözümler, tarayıcının zorunlu kıldığı politikaları aşabildiği için erişim kısıtlama çabalarını etkisiz hale getirebilir.
8. Daha güvenli web varsayılanlarına geçiş yönündeki daha geniş hareketi anlayın.
- Tarayıcılar, çapraz kaynak kimlik bilgisi sorunlarını çözmek için State Partitioning (Firefox), Tracking Prevention (Safari) ve CHIPS (Chrome) gibi yaklaşımları araştırıyor.
- Bu girişimler, kaynaklar arasında çerez ve kimlik bilgisi paylaşımını sınırlayarak kullanıcı güvenliğini ve gizliliğini iyileştirmeyi amaçlıyor.
9. CORS'un kusurlu bir çözüm olduğunu kabul edin.
- CORS'un geriye dönük uyumluluğu, karmaşıklık eklerken temel güvenlik sorununu tamamen çözemez.
- Tarayıcılar bu sorunları hafifletmek için yeni yaklaşımları yavaş yavaş benimsiyor, ancak ilerleme tutarlı değil.
Henüz yorum yok.