Bir web sayfasını göstermek ve onun yeri gizli tutmak için?

10 Cevap php

Background:

Ben bir PHP tabanlı (Zend Framework) uygulama var. Bu güvenli ve davet edilmiştir sadece kullanıcıların kendi kaynaklarına erişmek mümkün. Ben güvenli tutmak istiyorum kaynaklardan biri özel bir Google Takvim için bir link. Bu bir kamu bağlantı, ama bunu kimlerin görebileceğini kontrol olmak istiyorum. Bir kullanıcı hesabı iptal edilecek ve ben o kullanıcı hala takvime erişmek mümkün istemediğiniz bir zaman olabilir.

Yani kullanıcı gerçek konumunu bilmek yeteneğini vermeden ve (durumda kullanıcı silindiğinde) yer imi için yeteneği olmadan bu Google Takvim sayfayı görüntülemek istiyorum:

Ben benzersiz url çeşit üretmek ve görünümünde gösterebilirsiniz düşünüyorum.

<a href="/secret/link/4b21efc1ae7bb">Click here to see this secret page that only users who have been given permission are allowed to see</a>

Özel Google Takvim gerçek url kamu ve benim sunucu üzerinde olduğundan, kullanıcı url bilmek mümkün olmak istiyorum, ne de imi url mümkün değildir. Bu iframe, javascript, veya ne olursa olsun gerekli içerecektir olmadığını bilmiyorum, ama bu biraz how yapmak gerekiyor.

Question:

Gerçek yerini güvenliğe tutarken nasıl, Google Takvim görüntüleyebilir?

10 Cevap

Belki de en iyi yolu, sunucu aslında sonra tarayıcıya içerik olarak teslim, diğer sunucudan sayfayı getir izin vermektir.

Bu şekilde, dış URL tarayıcısına gönderilen asla ve bu nedenle bu konuda hiçbir şey bilmiyor. Bunun yerine tüm istemci sunucuya bir URL olduğunu görür. Bu şekilde yaparak size sayfada istediğiniz her türlü güvenlik ayarlamak için izin verecek.

Hemen hemen her web dili (. Net, PHP, java, vb) tüm bu sunucu tarafı yapmak için destek var.

UPDATE

Nedeniyle soruya değişikliklere, burada yeni bir yaklaşım: Eğer site içinde google takvimi görüntülemek gibi yönetmenize izin verir Google Calendar API. Eğer içeri tam olarak durum için yerleşik kullanın kodu ile erişim kontrol listesi.

Neden bunu yapmak istiyorsun? Eğer sayfayı almak ve sitenizde bir GÖNDERİLEN formu sayfada görüntüleyerek bunu gizlemek sürece gerçekten tamamen, başka bir sayfanın url saklayamam.

Bir çerçeve içinde bindirilirken deneyebilirsiniz, ama url hala bulunamadı.

Eğer nedensel (içinde başka sayfa gömme), bir çerçeveli izleyiciye yönlendirir url, kurulum bir GÖNDERİLEN bağlantı veya form imi değil engellemek için basit bir şey, isterseniz. Herkes POSTED veri olmadan sayfasını sık veya hisse, bu sayfa bulunamadı veya erişim izin verilmez görüntüleyebilirsiniz.

Dinamik bu URL'leri oluşturmak ve sadece bir kez erişilir olması onlara imkan verecek bir kod yazabilirsiniz. Bu şekilde, kullanıcılar bunları onlar boşuna istediğim imi olabilir.

Kendi proxy sayfa oluşturabilirsiniz.

Bu sayfa çağrıldığında, kod olacak:

  • Gerçek URL'yi (gizlemek istediğiniz bir) diyoruz.
  • Bunun dışında HTML kazıyın.
  • Bu HTML gizli URLye başvuruları kaldırın.
  • Geri istemcisi bu HTML tükür.

Ayrıca, @ DanLoewenherz fikrine göre, bu sayfa sadece bir kez çalışacaktır.

I / senin kullanarak yığını hangi dili emin değilim, ama yukarıdaki ASP.NET MVC mümkündür.

Tüm HTML getirir kendi doğrulanmış proxy sunucusu yaratmadan bunu yapmak için hiçbir tamamen güvenli yolu yoktur, vb JS, CSS, tüm URL'leri değiştiren ve bunları kullanıcıya döndürür. Bu basit bir görev değildir.

En iyi seçenek olduğunu IMO generating the Google Calendar yourself (Zend_GData kullanarak) ve "güvence" Kendini handel. İşte tüm en güvenli yolu ;)

Bu sayfayı görmek için kimlik çeşit ihtiyaç vardır? yapmazsa, ben bu sorunu çözer sanırım.

<?php
$page=curl_init("http://google.com/calendar/...");
curl_setopt($page,CURLOPT_RETURNTRANSFER,1);
echo utf8_decode(curl_exec($page));
?>

Yapan bir sayfa var:

file_get_contents('http://www.example.com/gcal ');

Ve o sayfa için gizli bir URL oluşturur.

Zend kullanarak, Zend_Http_Client harici bir sunucudan sayfayı almak ve kullanıcıya geri dönmek için sınıfını kullanabilirsiniz.

Apache Web Sunucusu kullanarak size mod-rewrite kullanabilirsiniz

http://www.yourhtmlsource.com/sitemanagement/urlrewriting.html