Bu durum için anlamsal olarak doğru HTTP yanıt kodu 403 Yasak olacaktır :
Sunucu isteği anladı, ancak yerine getirmeyi reddediyor. Yetkilendirme yardımcı olmaz ve istek tekrarlanmamalıdır. İstek yöntemi HEAD değilse ve sunucu, isteğin neden yerine getirilmediğini halka duyurmak istiyorsa, kuruluştaki ret nedenini açıklamalıdır. Sunucu bu bilgileri istemcinin kullanımına sunmak istemiyorsa, bunun yerine 404 (Bulunamadı) durum kodu kullanılabilir.
(403 yanıtının tanımı o "yetki değildir yardım edecek", IMO bu şekilde anlaşılmalıdır diyor rağmen HTTP Temel / Özet kimlik doğrulaması için özel olarak atıfta durum kodu olan, Yetkisiz 401 yerine kullanılmalıdır. Eğer konum beri değil kullanılarak bu kimlik doğrulama yöntemlerinden herhangi biri, 403 sizin durumunuza uygun durum kodudur.)
Ancak, 403 durum kodu kullanarak oradaki (veya en azından kuvvetle ima) gerçeğini ortaya koymaktadır olan sunucu teslim reddediyor olsa da, Bu URL'ye sahip bir sayfa. Bu potansiyel davetsiz misafirlerden gizlemek isteyebileceğiniz bir şey olduğundan, HTTP / 1.1 standardı 404 Bulunamadı durum kodunun açıkça döndürülmesine izin verir ( benimkini vurgulayın ):
Sunucu, İstek URI'sı ile eşleşen bir şey bulamadı. Koşulun geçici mi yoksa kalıcı mı olduğuna dair herhangi bir gösterge yoktur. 410 (Gitti) durum kodu, sunucu dahili olarak yapılandırılabilir bir mekanizma aracılığıyla eski bir kaynağın kalıcı olarak kullanılamadığını ve yönlendirme adresi olmadığını biliyorsa kullanılmalıdır.
Bu durum kodu genellikle sunucu, isteğin neden reddedildiğini tam olarak açıklamak istemediğinde veya başka bir yanıt olmadığında kullanılır.
Elbette, böyle bir gizliliği etkili hale getirmek için, döndürdüğünüz 404 hata sayfasının gerçek olmayan sayfalar için döndürdüğünüzle aynı görünmesi gerekir . Aksi takdirde, sadece en aptal ve en sıradan saldırganları kandırır. (Amacınız sayfaları yalnızca Google dizininden uzak tutmaksa, bunu da 403 yanıt verecektir.)
Sorunuzda önerilen diğer olası yanıtlar ve diğer yanıtlar ne olacak?
Daha önce de belirttiğim gibi, burada 401 yanıtının uygun olduğuna inanmıyorum. Bu olabilir çoğu tarayıcı olarak sürece, uygulamada çalışmak ve motorlar herhangi bozuk veya tanınmayan 4 davranacak arama xx bir 404 sanki serisi yanıt kodu, ancak uygun hala geçerli değil HTTP Spec ve tercih edebilecekleri herhangi bir sebep yok 403 veya 404'ün üzerinde.
Ayrı bir "404 hatası" sayfasına bir 301 (veya 302) yönlendirmesi kullanmaya gelince, bu , özensiz mod_rewrite öğreticileri tarafından yayılan korkunç bir uygulamadır ve doğrudan bir 404 yanıtı döndürmeyle karşılaştırıldığında kesinlikle hiçbir kullanma özelliği yoktur:
Ziyaret etmeye çalıştıkları URL'nin yerine hata sayfasının URL'si geldiği için ziyaretçiler için kafa karıştırıcı . Bu nedenle, var olmayan bir sayfaya ulaştıklarını belirten bir mesaj görürler, ancak ziyaret etmeye çalıştıkları sayfanın ne olduğunu kolayca görünür bir şekilde göstermezler ve bu nedenle URL'deki belirgin yazım hatalarını düzeltmek gibi herhangi bir kurtarma stratejisini kolayca deneyemezler, veya Google'a veya Wayback Machine'e kopyalayıp yapıştırabilirsiniz.
Özellikle 404 sayfanız robots.txt dosyasında izin verilmiyorsa veya gerçek bir 404 durum kodu ( "yumuşak 404" ) yerine 200 OK yanıtı döndürürse, bu durum 404 sayfanızın aramada görünmesine neden olabilirse, arama motorlarını şaşırtabilir. rastgele arama terimleri için sonuçlar.
Sunucularınızda ekstra yüke neden olur (az miktarda), ziyaretçilerin yanıt süresini artırır ve mevcut olmayan (veya gizli) bir sayfa için her istek artık fazladan bir HTTP turu içerdiğinden, potansiyel olarak sitenizi tarayan arama motorlarını yavaşlatır. çaldırırlar.
Bir 404 sayfasına yönlendirilen sayfalardan herhangi bir "bağlantı suyu" yine de kaybolur gibi SEO faydası yoktur.
(Elbette, bir durum yapmak aslında sayfa edildiğinde 404 yanıtının yerine bir 301 yönlendirmesi kullanmak istediğiniz gelmiştir taşındı ve onun doğru konuma ziyaretçiyi yönlendirebilirsiniz. Ama bu durum burada ele değil.)
Son olarak, burada birçok yorumda ifade edilen, sadece yönetici sayfalarınızı bu şekilde "gizlemenin" uygun şifre tabanlı kimlik doğrulaması için yeterli bir alternatif olmadığını düşündüğüm yankıyı tekrarlamak istiyorum . Yani, söz konusu eğer zaten güvenli bir kimlik doğrulama sistemi içinde, sayfalar oldukça zayıf da olsa fazladan bir katman olarak yararlı olabilir gizleme kurmak zorunda derinlik savunma yaklaşımı.