Çoğunlukla karşımıza çıkan sorunlardan bir tanesi dışarıdan gelen verilerin HTTPAuthentication'dan geçmeyerek sitede görüntülenmemesidir. Bu durumu kontrol etmek için CORS kullanılmaktadır.
Cross-Origin Resource Sharing (CORS), özellikle Amazon gibi Content Delivery Network (CDN - İçerik Dağıtım Ağı) kullanıyorsanız, güvenlik açısından kullanacağınız protokollerin başında gelir.
Örenğin:
http://www.aspmvcnet.com/ sitemize http://destek.karayeltasarim.com/fonts/font-awesome.min.css dosyasını çağırdığımız zaman, client kısmındaki browser sadece ilgili CSS dosyasını değil, aynı zamanda CSS dosyasının içerisindeki font dosyalarını (ttf, woff, svg...) da indirmekle yükümlüdür. Fakat dağıtıcı ağ ya da sunucu Same-Origin Security Protocol (SOSP) kullanıyorsa, ilgi dosyalar, malum güvenlik nedenleriyle kullanıcıya ulaştırılmayacaktır. Yine, aynı nedenlerden dolayı HTTPS'den geçmeyecek ve güvenlik sertifikanızda risk görüntülenmesine neden olacaktır.
Bu gibi durumlarda CDN veya mevcut sunucu Cross-Origin Security Protocol (COSP) şeklinde ayarlanmalıdır.
Bu durum elbette, back-end kodda çözülebilir fakat doğru olan dağıtım yapan ağın CORS ayarlarını COSP şeklinde değiştirmektir. Zira CDN'lerin amacı bir veya birden fazla projeye aynı içeri dağıtmak ve güncelleme esnasında tüm projelere bir kerede güncelleme sağlamak olduğundan dolayı, her projede teker teker aynı ayarı yapmak mantılı değildir.
Yukarıda verilen FontAwesome örneği, özellikle en sık karşılaşılan CORS sorunudur. Eğer CDN sunucunuz ayarlı değilse, en güveniliri mevcut ve sık kullanılan CDN'lerden ilgili dosyayı almaktır. MVC4 ve MVC5 ile gömülü olarak gelen Bootstrap Framework kendi içerisinde FontAwesome'u içermektedir. Bundan dolayı projenizde Bootstrap kullanmasanız bile Bootstrap CDN üzerinden ilgili veriyi çekebilirsiniz.
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
Bu sayede CORS ile iligli sorununuz çözülecek ve ilgili font dosyaları kullanıcıya iletilecektir.
Takipte kalın...