403 yerine 404 ile dizin listelerini devre dışı bırakın


9

Bunun gibi dizin listelerini devre dışı bıraktım ...

Options -Indexes

Ne zaman böyle bir dizine erişmek ve erişmek: -

www.example.com/secret/

403 Yasak yanıt alıyorum .

Ancak, 404 Bulunamadı yanıtı istiyorum , bu yüzden bilgisayar korsanları dizin yapımı bu kadar kolay tahmin edemez. Bunu nasıl yaparım?



Bunu anlıyorum, ama özellikle zorlaştırmak için çok az çaba harcadığından, kimseyi kolaylaştırmanın bir anlamı yok.
Rik Heywood

Yanıtlar:


8

/ Secret mod_rewrite ve AllowOverride öğelerini etkinleştirin. Ardından .htaccess oluşturun:

RewriteEngine On
RewriteBase   /secret
RewriteRule   ^$ - [R=404,L]


1

Bunun yerine 404 hatası döndüren özel bir 403 komut dosyası oluşturun.

Örneğin, PHP'de:

<?php
header("HTTP/1.0 404 Not Found");
die("<h1>404 Not Found</h1>");
?>

Şimdi Apache'yi bu komut dosyasını 403 sonuç için kullanacak şekilde yapılandırın:

ErrorDocument 403 /403.php

Yeniden yazma ile uğraşmak yok ve anında tüm sunucu için çalışıyor.


Bu, sunucuyu kazıyan insanlar için hala 403 olarak görüntülenmeyecek mi?
IRGeekSauce

1
Hayır. Sunucu, header()komut nedeniyle doğru bir 404 hatasıyla yanıt verecektir .
Gerald Schneider

-1, çünkü özel hata mesajınız! = Sunucu hata mesajınız olabilir (nging veya apache veya her neyse). Sunucunuzu yapılandırmanın veya .htaccess dosyalarını kullanmanın bir yolu yoksa bu son çözümdür. Ayrıca bu çözüm, web sitenizi DirBustering yapmanızı engellemez, çünkü yine de bu tür "özel hata mesajlarını" sunucu hata mesajlarından ayırt edebilirsiniz.
Awaaaaarghhh

0

Dizinin içeriğini liste ve 404 hatası olarak görüntülemeyi durdurmanın çözümü basit. Projenizin kök dizininde .htaccess dosyası oluşturun ve hangi dizinlerin korunması gerektiğini yazın.

Dizinlerin yapısı

- your_root_directory
  - .htaccess
  - 404.html
  - index.html 
  - app
    - other files I do not want to show
  - models
    - other files I do not want to show

.htaccess

RewriteEngine On
RewriteRule   ^app/ - [R=404,L]
RewriteRule   ^models/ - [R=404,L]

ErrorDocument 404 /your_root_directory/404.html

.Htaccess öğesinin ikinci satırı, uygulama dizinindeki ve tüm alt dizinlerindeki liste öğelerine erişime izin vermez.

.Htaccess'in üçüncü satırı, modeller dizinindeki ve tüm alt dizinlerindeki liste öğelerine erişime izin vermiyor.

.Htaccess satırının dördüncüsü kendi 404 hatasını belirler (apache varsayılan hatasını göstermek istemiyorsanız).

Htaccess ile çalışırken tarayıcınızdaki önbelleği temizlemeyi unutmayın.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.