sadece belli bir sayfadan izin Sayfası erişimi kısıtlamak

2 Cevap php

Bu soru sordum birine benzer here. Ama aynı etkiyi elde etmek istiyorsanız onun ilgili çünkü. Ben kullanıcıların sadece ana sayfasından sitedeki diğer sayfalara erişim sınırlı olmak istiyorum. İlk sayfa navigasyon ve sonra gidin sayfanın içeriği için bir çerçeve için bir çerçeve içerir. Ben onlar içerik sayfalarına erişebilirsiniz tek yolu, bu ana sayfasını kullanarak tarafından böylece kurulum olmasını istiyorum. Ana sayfa Yani eğer http://intranet/index.html sonra index.html sağlanan bağlantıyı kullanarak olmadan http://intranet/other_page.html alınamıyor. Bu mümkün mü ve eğer öyleyse iyi teknik ne olurdu? Ben siteyi hizmet için apache kullanıyorum ve php ve kullanılabilir javascript var.

2 Cevap

Referer istek başlığını kontrol - kendi tarayıcıları ile sıradan kullanıcılar önlemek olacaktır. Ama sahte olabilir - kararlı bir saldırganın aptal değildir.

Yanlış pozitif olsa mümkündür. Bazen Referans ayarlı değil.

Bu kısa cevap - hayır, o strictly konuşma, belki değil.

Uzun cevabı evet, muhtemelen makul bir approximation bu ile gelip olabilir, ancak sınırlamalar farkında olmak gerekiyor.

Temelde, HTTP vatansız olduğunu. Olursa olsun meydana gelen belirli eylemler, web sunucunuzun /other_page.html için bir tek isteği göreceksiniz ve bu hizmet edip etmeyeceğine karar vermeniz gerekir. Makul sınırlama çeşit için, ilk adım you will have sunucu tarafı durumunu korumak bazı yol var olmasıdır. Bu olmadan önceki istekleri ile other_page.html için gelen herhangi bir isteği kadar maç olamaz. İyi haber PHP sunucu-tarafı oturumları için yerel destek var olmasıdır.

(Sunucu tarafı oturumları olmadan istemci tarafı oturum çerezleri ile bunu başarmak için çalışın, ya da yönlendirme başlığını teftiş, ancak bu onlar göndermek sadece dizeleri vardır ve bunun için kendi kelime kabul gibi o zaman sahte müşteriler için önemsiz bulunuyor olabilir .)

Şimdi, bir kullanıcı başka bir sayfaya gitmeden önce ilk sayfa olup olmadığını izlemek için bu oturumu kullanmanız gerekir olurdu - ilk sayfası istendiğinde oturumda bir değişkeni ayarlamak ve / other_page için her istek üzerine olabilir . html, bu değişken bu hizmet öncesi oturumda ayarlanmış olduğundan emin olun. Yani en azından onlar geçerli oturumda ilk sayfasını ziyaret ettiğiniz, size makul bir fikir verir.

Hatta bir tarayıcı tüm dahil olup olmadığını - Belirli bir URL istemek için tarayıcıda tıklanan ne bağlantı bilmenin hiçbir yolu yoktur ancak. Sunucu görür Tüm bazı başlıkları ile birlikte belirli bir kaynak için bir istek. Potansiyel olarak bu taklit etmenin bir yolu /index.html sunulan rasgele bir dize oluşturmak ve bu sayfadaki bağlantıyı bir sorgu parametresi olarak bu eklemektir. Sonra oturumda depolamak ve other_page isteği aynı rasgele dize ile bir sorgu parametresi içeren onay istedi zaman.


why Bunu yapmak istiyorsun - Ama bu noktada bir adım geri almak ve söylemek zamanı? Bu yapılabilir neden ben hiç iyi bir neden düşünemiyorum. It is not an appropriate security measure - düzgün güvenlik yapmak gerekir, ve bu motivasyon ise bunun için istediler. Bu ziyaretçiler belirli bir iş akışı uygulanması iyi bir yöntem değil ya da - bu hiç de iyi bir fikir tartışmalıdır, ancak bunun yerine sayfa Yatak önce sayfa A'ya gitmek için zorlamak nasıl düşünme, düşünmek ister {[(2) ]} neden bunları sizin sınırlayıcı faktörler nelerdir, bunu yapmak gerekir, ve onlara ulaşma az müdahaleci yolu nedir olduğunu.

Unutma - http://intranet/other_page.html bu sayfadan hizmet ediyoruz içeriğe karşılık gelen bir Tekdüzen Kaynak Bulucu olduğunu. Birisi bu adres bir gün ziyaret ve yararlı bir kaynak görürse, neden yeryüzünde onlar geri giderken tekrar görmek için izin gerekmez mi? Ben kuvvetle Eğer kasıtlı olarak kullanıcıların deneyimlerini handikap istiyorum neden düşünmek öneririz, ve genel bir şekilde karşı gitmek siteniz ile internet işleri,.