Vô hiệu hóa danh sách thư mục với 404 thay vì 403


9

Tôi đã vô hiệu hóa danh sách thư mục như vậy ...

Options -Indexes

Khi tôi thử và truy cập một thư mục như thế này: -

www.example.com/secret/

Tôi nhận được phản hồi 403 Cấm .

Tuy nhiên, tôi muốn có phản hồi 404 Không tìm thấy , vì vậy tin tặc không thể đoán cấu trúc thư mục của tôi dễ dàng như vậy. Làm thế nào tôi có thể làm điều đó?



Tôi nhận ra điều đó, nhưng không có lý do gì để làm cho nó dễ dàng cho bất cứ ai, đặc biệt là vì nó cần rất ít nỗ lực để làm cho nó khó hơn.
Rik Heywood

Câu trả lời:


8

Kích hoạt mod_rewrite và AllowOverride trong / secret. Sau đó tạo .htaccess:

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


1

Thay vào đó, hãy tạo một tập lệnh 403 tùy chỉnh trả về lỗi 404.

Ví dụ: trong PHP:

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

Bây giờ cấu hình Apache để sử dụng tập lệnh này cho 403 kết quả:

ErrorDocument 403 /403.php

Không gây rối với việc viết lại và nó hoạt động ngay lập tức cho toàn bộ máy chủ.


Điều này có còn hiển thị dưới dạng 403 đối với những người cào máy chủ không?
IRGeekSauce

1
Không. Máy chủ sẽ trả lời với lỗi 404 chính xác do header()lệnh.
Gerald Schneider

-1, vì thông báo lỗi tùy chỉnh của bạn có thể là! = Thông báo lỗi máy chủ của bạn (có thể là nging hoặc apache hoặc bất cứ điều gì). Đây là giải pháp cuối cùng nếu không có cách nào để định cấu hình máy chủ của bạn hoặc sử dụng các tệp .htaccess. Ngoài ra, giải pháp này sẽ không ngăn bạn DirBustering trang web của bạn, bởi vì bạn vẫn có thể phân biệt "thông báo lỗi tùy chỉnh" như vậy từ các thông báo lỗi máy chủ.
Awaaaaarghhh

0

Giải pháp của tôi để ngừng hiển thị nội dung của thư mục dưới dạng danh sách và hiển thị lỗi 404 rất đơn giản. Tạo tệp .htaccess trong thư mục gốc của dự án của bạn và viết thư mục nào sẽ được bảo vệ.

Cơ cấu thư mục

- 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

Dòng thứ hai của .htaccess không cho phép truy cập vào danh sách các mục trong thư mục ứng dụng và tất cả các thư mục con của nó.

Dòng thứ ba của .htaccess không cho phép truy cập vào danh sách các mục trong thư mục mô hình và tất cả các thư mục con của nó.

Dòng thứ tư của .htaccess đặt lỗi 404 của riêng chúng tôi (nếu bạn không muốn hiển thị lỗi mặc định apache).

Nhớ xóa bộ nhớ cache trên trình duyệt của bạn khi bạn làm việc với htaccess.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.