Вимкнення списків каталогів з 404 замість 403


9

Я відключив списки каталогів так ...

Options -Indexes

Коли я намагаюся отримати доступ до такого каталогу:

www.example.com/secret/

Я отримую 403 Заборонену відповідь.

Однак я хочу відповідь 404 Not Found , тому хакери не можуть так легко здогадатися про структуру мого каталогу. Як би я це зробив?



Я усвідомлюю це, але немає сенсу полегшити будь-кого, тим більше, що для того, щоб зробити це важче, потрібно небагато зусиль.
Rik Heywood

Відповіді:


8

Увімкніть mod_rewrite та AllowOverride в / секретно. Потім створіть .htaccess:

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


1

Створіть спеціальний сценарій 403, який натомість повертає помилку 404.

Наприклад, в PHP:

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

Тепер налаштуйте Apache на використання цього сценарію для 403 результатів:

ErrorDocument 403 /403.php

Не возиться з переписувачами, і це миттєво працює на весь сервер.


Хіба це все ще не відображатиметься як 403 для людей, які скребають сервер?
IRGeekSauce

1
Ні. Сервер відповість з правильною помилкою 404 через header()команду.
Джеральд Шнайдер

-1, тому що може бути власне повідомлення про помилку! = Повідомлення про помилку вашого сервера (будь то nging, apache чи будь-що інше). Це останнє рішення, якщо немає можливості налаштувати ваш сервер або використовувати .htaccess файли. Крім того, це рішення не завадить вам забруднити ваш веб-сайт, оскільки ви все ще можете розкрити такі "власні повідомлення про помилки" від повідомлень про помилки сервера.
Awaaaaarghhh

0

Моє рішення зупинити показ вмісту каталогів як списку та відображати помилку 404 просто. Створіть .htaccess файл у кореневому каталозі свого проекту та напишіть, які каталоги слід захищати.

Структура каталогів

- 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 забороняє доступ до елементів списку в каталозі додатків та всіх його підручників.

Третій рядок .htaccess забороняє доступ до елементів списку в каталозі моделей та всіх його субриднихтекторій.

Четвертий рядок .htaccess встановлює нашу власну помилку 404 (якщо ви не хочете показувати помилку за замовчуванням apache).

Не забудьте очистити кеш-пам'ять свого браузера, коли ви працюєте з htaccess.


-2

Використовуйте .htaccess для маскування помилок. Дивіться це керівництво:

http://www.tarahost.net/pages/web-design/29371.php


3
Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки. Це посилання тепер мертве, і тому ця відповідь тепер марна
Марк Хендерсон,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.