Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info
iconfalse

Çerçeve içerisinde kullanılmak istenen linklerin referrerpolicy değerleri görüntüleme için önemlidir. (Örneğin; Google, Youtube vb. sayfalar sameorigin çalıştığı için başka sayfaların içerisinde gömülü olarak çalışmamaktadır. Ancak youtube linki koymak istiyorsak video üzerinde sağ tık> Yerleştirme Kodunu Kopyala seçeneğinden src li adres alınarak çerçeve değişkeni içerisinde kullanıldığında video form üzerinde gösterilebilir olur.) Bu yüzden çerçevede kullanılacak linklerin doğru seçilmesi gerekmektedir. ReferrerPolicy değerleri uyuşmayan link kullanılmak istendiğinde içerik gösterilemeyecek olup uyarı alınacaktır. Aşağıda bu konu ile ilgili bazı detay bilgilere ve eğer sayfa sizin yönetiminizdeyse uygulanabilecek bazı işlemlere yer verilmiştir.

ReferrerPolicy; IFrame olarak kullanılacak sitenin kendi koyduğu bir güvenlik önlemidir, çapraz kullanım (http-htttps) ya da farklı urllerden kullanılacak iframe'ler için projenin içerisinden bu ayarların yönetilmesi gerekmektedir, Flow tarafında yapılması gereken bir geliştirme değildir. İlgili firma X projesi içerisinde yukarıda verdiğim örnekler bağlamında geliştirmelerini düzenlemeleri gerekmektedir. 

Referrer Policy Türleri

Tür

Açıklama

no-referrer

Siteden kaynaklanan hiçbir isteğe, kendisi ile aynı originine sahip bir kaynağa yönlenmiş bile olsa, Referer headerı eklenmemesini sağlar. Bu durumda Referer alanı gönderilmeyecektir.

no-referrer-when-downgrade

Protocol down grading olarak bilinen, daha güvenli bir protokolden daha az güvenli bir protokole geçişte, örneğin HTTPS'den HTTP protokolüne geçişte Referer headerı gönderilmeyecektir.

same-origin

Referrer-Policy 'nin alabileceği same-origin seçeneğinde yalnızca aynı origin'e sahip bir siteye istek yapıldığında, Referer headerı gönderilecektir.

origin

URL'deki path kısmı atılarak, yalnızca şema-domain ve port'dan oluşan origin, istekteki Referer alanına eklenecektir.

strict-origin

Origin'de belirttiğimiz protocol-down-grading case'ini tölere etmek için sunulan bir seçenektir. Referer'de origin bilgisi, ancak kaynak siteden, aynı protokol kullanan (örneğin HTTP->HTTP ya da HTTPS-HTTPS), ya da kaynak siteden daha güvenli bir protokol kullanan hedef sitelere (HTTP->HTTPS) erişilmek istenildiğinde gönderilecektir.

origin-when-cross-origin

Hedef ve kaynak aynı origin'e sahip ise Referer headerında FULL URL (şema+domain+path); eğer farklı bir origin'e sahip ise sadece şema ve domain bilgisi gönderilecektir.

strict-origin-when-cross-origin

origin-when-cross-origin ile çok benzer olan bu seçenek, protocol-down-grading'de karşılaşılan case'i tölere etmektedir. Buna göre, Referer bilgisinde origin, kaynak site ve hedef aynı protokole ya da hedef daha yüksek bir protokole sahip olduğunda gözükecektir.

unsafe-url

Browser, her koşulda kaynak siteden hedef siteye yapılan isteğin Referer bilgisinde full URL'i paylaşacaktır.

Kullanım Dinamiği

Oluşturulan projenin geliştirildiği platforma göre default referrer policy türü değişiklik gösterecektir. 

Oluşturulan default .Net Web Application'da iFrame cross site (http-https) testlerde ya da referrer policy engeline takılma konusunda bir problem yaşamamaktadır, çünkü Flow'un kullandığı X projesinde bir X-Frame-Options ayarı verilmemiştir.

Eğer X-Frame-Options SAMEORIGIN'e çekilirse

Image RemovedImage Added

HTTP ya da HTTPS fark etmeksizin Flow üzerinden ilgili iFrame'e erişilmeyecektir. Eğer bu kod bloğunu kaldırırsak, o zaman iFrame'e erişimde bir problem gözlenmemektedir.
Tüm Gelen İsteklere İzin Vermek İçin AllowAll kullanılması yeterlidir.

<system.webServer>
...
<httpProtocol>
  <customHeaders>
    <add name="X-Frame-Options" value="AllowAll" />
  </customHeaders>
 </httpProtocol>
...
</system.webServer>

URL Bazlı Allow Origin

Eğer kullanıcı belli bir url'e izin vermek isterse aşağıdaki yapıda url'i vererek kullanabilir.

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="http://www.yourSite.com" />
      </customHeaders>
    </httpProtocol>
</system.webServer>

...