Ngăn truy cập trực tiếp vào tệp PHP htaccess

Bảo vệ Joomla quan trọng. các tệp được truy cập trực tiếp trên web là một khía cạnh thiết yếu trong bảo mật trang web của bạn

Thêm mã này vào của bạn. htaccess để bảo vệ Joomla của bạn. cấu hình của. tập tin php và của bạn. htaccess từ truy cập trực tiếp qua web


Lệnh cho phép, từ chối
Tư chôi tât cả


lệnh cho phép, từ chối
tư chôi tât cả

Sửa đổi. htaccess của Joomla của bạn. thông qua FTP, SSH và Trình quản lý tệp trong Công cụ trang web

Đây là hướng dẫn về cách ngăn người dùng truy cập trực tiếp vào tệp bao gồm PHP trong trình duyệt của họ. Một số tệp bao gồm nhất định có thể dựa vào các biến bên ngoài từ các tệp khác. Do đó, chúng có thể đưa ra lỗi và cung cấp thông tin hệ thống nhạy cảm nếu người dùng tải chúng trực tiếp.

Từ chối quyền truy cập vào tất cả các tệp trong thư mục bao gồm của bạn

Nếu các tệp bao gồm PHP của bạn được đặt trong một thư mục cụ thể, bạn có thể yêu cầu máy chủ web của mình từ chối tất cả quyền truy cập vào nó

apache

Nếu bạn đang sử dụng Apache, bạn có thể tạo một. htaccess và đặt nó vào thư mục được đề cập. Cái này. htaccess phải chứa các lệnh sau

order deny,allow
deny from all

ở trên. htaccess yêu cầu Apache trả về phản hồi “403 Forbidden” nếu ai đó cố gắng truy cập vào thư mục được đề cập

Nginx

Thật không may, Nginx không hỗ trợ. tập tin htaccess. Do đó, bạn sẽ cần chỉnh sửa tệp cấu hình khối máy chủ của mình để chứa các nội dung sau

location ~ /[includes|config] {
    deny all;
    return 403;
}

Mục nhập vị trí ở trên yêu cầu Nginx ngăn truy cập web vào hai thư mục có tên là “gồm” và “config”. Nếu người dùng cố gắng truy cập các thư mục này, họ sẽ gặp lỗi “403 Forbidden”

Rõ ràng, bạn sẽ cần sửa đổi cấu hình ở trên để phù hợp với các thư mục mà bạn muốn chặn

Sử dụng PHP

Nếu bạn không muốn thay đổi giá trị cấu hình máy chủ, thì bạn có thể sử dụng phương pháp chỉ dành cho PHP. Điều này liên quan đến việc xác định một hằng số trong tập lệnh chính của bạn

Ví dụ

//Example CONSTANT called SITE_URL.
define['SITE_URL', '//test.com'];

Sau đó, ở đầu các tệp bao gồm của bạn, bạn có thể kiểm tra xem hằng số ở trên đã được xác định chưa

//Check if CONSTANT called SITE_URL is defined.
if[!defined['SITE_URL']] {
    //Send 403 Forbidden response.
    header[$_SERVER["SERVER_PROTOCOL"] . " 403 Forbidden"];
    //Kill the script.
    exit;
}

Nếu hằng số chưa được xác định, thì chúng tôi giả định rằng tệp bao gồm đang được truy cập trực tiếp qua URL. Do đó, chúng tôi gửi phản hồi 403 Forbidden và tắt tập lệnh

Hạn chế của phương pháp này là bạn sẽ phải thêm kiểm tra ở trên vào đầu tất cả các tệp bao gồm của mình. Bạn cũng sẽ phải đảm bảo rằng hằng số tồn tại trong tập lệnh PHP có thể truy cập công khai

Đặt bao gồm các tệp bên ngoài thư mục gốc của tài liệu

Bạn cũng có thể đặt các tệp PHP của mình bên ngoài gốc tài liệu của máy chủ web của bạn. Điều này sẽ khiến chúng không thể truy cập được qua URL HTTP

Gốc tài liệu thường được gọi là public_html, www hoặc html, tùy thuộc vào thiết lập của bạn

Ví dụ: gốc tài liệu của bạn có thể được đặt tại. /var/www/html/

Thư mục bao gồm của bạn có thể được đặt tại. /var/www/bao gồm/

Nếu bạn có một tệp có tên là hàm. php trong thư mục bao gồm của bạn và bạn muốn đưa tệp đó vào chỉ mục của mình. php trong thư mục gốc của tài liệu có thể truy cập công khai, bạn có thể làm điều này

Dưới đây là 5 phương pháp tốt nhất để ngăn truy cập trực tiếp vào tệp php của bạn

eregiCase insensitive regular expression match

change "main.php" to your php file . 

main.php source file : 

Chủ Đề