iFrame kullanarak başka bir Web sitesine Portal ekleme
Portal uygulamalarını kullanmanın en yaygın yollarından biri, portal işlevselliğini başka bir web sitesine eklemektir. Genellikle diğer web sitesi zaten vardır ancak yeteneklerini geliştirmek ve portal uygulaması aracılığıyla elde edilen verilerinizle çalışan yeni işlevler eklemek istersiniz.
Bu senaryoda, portal işlevselliğini sıfırdan oluşturmak yerine katıştırmak daha kolaydır. Bu makalede, iframe kullanarak portal uygulamasını farklı bir Web sitesine katıştırma adımları açıklanmaktadır.
Adım 1. iFrame için portalı etkinleştirme
iFrame'ler varsayılan olarak yeni portallarda devre dışı bırakılmıştır; böylece hiç kimse "tıklama" saldırıları girişiminde bulunmak için portal uygulamanızı harici olarak katıştıramaz.
HTTP yanıtı bağlığı ayarlayın. İçerik-Güvenlik-İlkesi (CSP) çerçeve üst öğeleri direktifini (önerilir) veya X-Frame-Seçenekleri'ni seçebilirsiniz.
Not
İçerik-Güvenlik-İlkesi çerçevesi-üst öğelerinin değiştirilmiş X-Frame Seçenekleri vardır ve bu makalede açıklanan yöntemdir.
HTTP/İçerik-Güvenlik-İlkesi HTTP başlığını etkinleştirmek için site ayarını ayarlayın. Daha fazla bilgi: Portallarda HTTP başlıklarını ayarlama
Bu değeri ayarlamak için CSP: çerçeve-üst öğeleri'nde açıklanan sözdizimini izleyin.
Örneğin,
www.contoso.comweb sitesinde bir iframe kullanılarak katıştırılan bir portalı etkinleştirmek için ayar aşağıdaki gibi görünecektir:Content-Security-Policy: frame-ancestors 'self' <https://www.contoso.com>;Not
'self'dizesi önemlidir; bu dize olmadan portal, temel formlar için kalıcı açılan menüler gibi senaryolarda genellikle gerekli olan kendi sayfalarını katıştıramaz.Joker karakter (*) kullanmak yerine, belirli sitelere portalı iframe içinde katıştırma yeteneğini kısıtlamak önemlidir.
CSP, değerleri çeşitli etkenlere (komut dosyalarının yüklenme yeri gibi) bağlı olan çok sayıda yönerge içerir. Bu makale, uygulanmasına özgü olduğundan bu bilgileri kapsamaz. Ancak, bu kurulumu öncelikle üretim dışı bir portal üzerinde sınamanızı, düzeltmeniz gereken sorunları belirlemek için tarayıcı konsolu hatalarına bakmanızı ve ayarı düzenlemenizi öneririz.
Portal tanımlama bilgileri için SameSite varsayılanını Hiçbiri olarak ayarlayın.
Tanımlama bilgilerinin SameSite özniteliği siteyi siteler arası istek sahteciliği (CSRF) saldırılarına karşı korumak için yararlıdır. Ancak bu, sitenin Kullanıcı kimlik doğrulaması gerektirmesi veya form ya da listeler gibi dinamik bileşenler içermesi gibi senaryolarda bir iframe içinde katıştırılamayacağı anlamına gelir.
Bu nedenle, portalı bir iframe içine katıştırmak için, portalınızın SameSite tanımlama bilgisi özniteliğini varsayılan olarak Hiçbiri olarak değiştirmeniz gerekir. Daha fazla bilgi: SameSite modu değişiklikleri
Not
SameSite tanımlama bilgilerini Hiçbiri olarak ayarlamak portalınızı CSRF saldırılarına açık hale getirmez çünkü portallar platformu bu saldırıları önlemek için CSRF önleme belirteçleri kullanır.
Adım 2. Portalınızı katıştırma
Önceki adımı tamamladıktan sonra, portal deneyimini Web sitenize katıştırmak için yapmanız gereken tek şey, tüm siteyi veya belirli sayfaları gerektiği gibi katıştırmak için HTML iframe etiketini kullanmaktır.
Portal etki alanı adının, portalı iframe içinde katıştırdığınız site etki alanı adının eşdüzey veya alt öğesi olmasını öneririz. Örneğin, kök web siteniz www.contoso.com ise portal etki alanı adı oportal.contoso.com olmalıdır. Bu, portal tarafından kullanılan tanımlama bilgilerinin üçüncü taraf tanımlama bilgileri olarak sınıflandırılmaması ve tarayıcı (blog) tarafından engellenmesi açısından önemlidir. Aksi halde, Captcha ve temel/gelişmiş form yeniden yönlendirme gibi işlevler düzgün çalışmayabilir. Portalınızda özel bir etki alanı adı ayarlamak için Özel etki alanı adı ekleme bölümüne gidin.
Adım 3. Tanıtıcı başlıkları ve alt bilgileri
Başlıkların ve alt bilgilerin görünme biçimini veya katıştırılmış Portal sayfalarında tamamen görünüp görünmeyeceğini değiştirebilirsiniz.
Katıştırılmış portal başlıklarının ve alt bilgilerin gösterilmesini önle
Bu, portalı katıştırmak istediğiniz, zaten başlık ve alt bilgilere sahip olan ana site için yaygın bir seçimdir. Bu gibi durumlarda, katıştırılmış portalın başlığını ve alt bilgisini göstermek istemeyebilirsiniz. Aşağıdaki senaryoları değerlendirin:
Tüm Portal bir iframe içinde katıştırıldığında
İlgili başlık ve altbilgi Web şablonlarını güncelleştirerek başlık ve alt bilgi içeriğini kaldırın.Belirli bir portal sayfası bir iframe içinde katıştırıldığında
Genel olarak, bir Web sitesine belirli bir sayfayı katıştırdığınızda Portal başlığını veya alt bilgisini göstermek istemezsiniz. Ancak, Kullanıcı doğrudan portala gittiğinde, başlık ve alt bilginin kullanılabilir durumda olmasını yine de isteyebilirsiniz. Sayfa içeriğine göre dinamik olarak işlenecek başlık ve alt bilgileri değiştirerek bunu yapabilirsiniz.
Başlığa ve alt bilgilere koşullu kod ekleme
Başlık ve alt bilgi Web şablonları, tam liquid özelleştirmelerini destekler böylece belirli özellikleri işlemek için koşullu kod ekleyebilirsiniz.
Örneğin, sayfa arama sayfası dışında bir şey ise, aşağıdaki kod başlıkta bir arama çubuğu görüntüler.
Önemli
Başlık tüm sayfalar için ortak bir öğe olduğundan, page.id kullanıcı tarafından açılan ilk sayfa için varsayılan olarak önbelleğe alınır. Bu nedenle, bu kod bu öğelerin önbelleğe alınmamasını ve her zaman geçerli sayfaya göre değerlendirilmelerini sağlamak için değiştirme etiketini kullanır.
{% substitution %}
{% assign current_page = page.id %}
{% assign sr_page = sitemarkers[Search].id %}
{% if current_page == sr_page %}
{% assign section_class = section-landing-search %}
<section class=page_section section-landing-{{ current_page }} {{ section_class | h }} color-inverse\>
<div class=container\>
<div class=row \>
<div class=col-md-12 text-center\>
{% if current_page == sr_page %}
<h1 class=section-landing-heading\>{% editable snippets 'Search/Title' default:resx["Discover_Contoso"] %}\</h1\>
{% include 'Search' %}
{% endif %}
</div\>
</div\>
</div\>
</section\>
{% endif %}
{% endsubstitution %}
Başlığa ve alt bilgilere koşullu kod eklemeye alternatif olarak, aşağıdaki yöntemleri de düşünebilirsiniz. Ancak, herhangi bir yaklaşım önermiyoruz; her ikisinin de sınırlamaları bulunur ve tam işlevselliği desteklemez.
- Hiçbir liste veya form içermeyen salt okunur senaryolar için şablonunuzda başlığı ve alt bilgiyi devre dışı bırakın.
- Özel bir yeniden yazma şablonu kullanın (
~/Areas/Portal/Pages/Form.aspx).
Ayrıca bkz.
Portallar için site ayarlarını yapılandırmak
Değiştirme şablonu etiketi
Portalda üst bilgi ve alt bilgi çıktısını önbelleğe alma özelliğini etkinleştirme
SameSite modu
Portallarda HTTP başlıklarını ayarlama