Form içerisinde farklı bir sayfasının çağırılıp, görüntülenmesine yardımcı olan bir HTML bileşendir. Kullanıcıların farklı bir linke tıklamalarına gerek kalmadan aynı form içerisinde sayfayı görüntüleyebilecek ve işlem yapabilecektir. Bu sayede web siteleri, ödeme sayfaları, video içerikler vb. form içerisinden görüntülenebilir.

 

Örnek

Form üzerinde fatura tutar bilgisi ödeme sayfasına parametre geçilir ve o sayfada işlem sonrası gönderilen mesaj form üzerinde gösterilir.

Örnek Senaryo: Senaryo Videosu

Örnek Proje: IFramePublished.rar  (Örnek bir proje olduğundan; kontrol edilmek istenen ortamda IIS veya visual studio üzerinde ayağa kaldırılmalıdır.)

Örnek Akış Tasarımı: iFrameCommunication.nxm

Değişken Özellikleri

Form tasarımı üzerinde eklendiğinde karşılaşılan ekrandır. (Form tasarlarken değişken ekleme işleminin nasıl yapıldığına dair bilgi Form Tasarım Ekranı bölümünden edinilebilir.)

 Çerçeve| Değişken Özellikleri

Ad: Değişkenin akıştaki tekil adıdır. Kod işlemlerinde bu bölüm kullanılır. Kullanıcılar tarafından görüntülenmemektedir.

Görünen Ad: Değişkenin görünen adıdır. Kullanıcılar ilgili akışı web veya mobil üzerinden açtıklarında bu bölümü görmektedir. 

Yeni tanım sonrasında form tasarım bölümünden çift tık işlemi ile kullanıcı direk kurulum sihirbazı ekranına yönlenir. Görünen ad bilgisi o bölümden güncellenir.

Değişkeni oluşturduktan sonra sihirbazı aç: Değişken tanımı sonrasında detay özellikler belirtilecekse kurulum sihirbazına yönlenmek için kullanılır. Eğer bu bölüm işaretliyse 'Kaydet ve Kapat' işlemi sonrasında kullanıcı sihirbaza yönlendirilir. 

Kurulum Sihirbazı

Değişkenlerin detay özelliklerinin bulunduğu bölümdür. Bu bölüme;

  • Form tasarımı üzerinden değişken tanımlandıktan sonra sihirbazı açarsa,
  • Tanımlı değişkenlerin üzerinde çift tık işlemi yaparsa,
  • Tanımlı değişken üzerinde sağ tık- düzenle aksiyonu ile

erişilmektedir.

 Çerçeve| Kurulum Sihirbazı

Genel Özellikler

  • Ad: Değişkenin akıştaki tekil adıdır. Kod işlemlerinde bu bölüm kullanılır. Kullanıcılar tarafından görüntülenmemektedir. Değişken ilk oluşturulduğu zaman girilir. Güncelleme işlemi yapılamaz.
  • Görünen Ad: Değişkenin görünen adıdır. Kullanıcılar ilgili akışı web veya mobil üzerinden açtıklarında bu bölümü görmektedir. 
  • Tip: İlgili değişkenin tip bilgisidir. Değiştirilemez.

Özet

  • Diğer Özellikler: iFrame' in scrolling, frameborder gibi diğer detay özelliklerin tanımlandığı alandır. Özellikler tanımlanırken '+' ile birleştirilmesi gerekmektedir.
  • Genişlik: Çerçevenin genişlik bilgisidir.
  • Url: Çerçeve içerisinde gösterilecek sayfanın link bilgisidir. 
  • Üst Sayfanın Veri Göndermesine İzin Ver: Çerçeve içerisinde gösterilen sayfadan gelen bir dönüş mesajı varsa ve onu form içerisinde kullanmak istiyorsak işaretlenmelidir. Çerçeve değişkeninin değer değiştiğinde kısmında bu işlem gerçekleştirilebilir. 

    window.parent.postMessage("FLOW|" + variableValue + "|" + firstValue, '*'); formatında dönüş beklenmektedir.

  • Yükseklik: Çerçevenin yükseklik bilgisidir.

Çerçeve değişkeninin özellikleri formül sihirbazı(rosyln) bölümünden de atanabilir/ değiştirilebilir. 

Ç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

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>