2012-11-17 33 views
8

trường đại học của tôi có nhiều máy chủ có cùng một dữ liệu phản ánh qua họ, vì vậy tôi có thể truy cập ví dụVô hiệu hóa tải về các tập tin php nếu PHP không được cài đặt

foo.uni.edu/file.php 
bar.uni.edu/file.php 

Có điều là, không phải tất cả các máy chủ có PHP cài đặt , vì vậy bất kỳ ai cũng có thể tải xuống các tệp php của tôi nếu họ thực hiện kết nối thông qua máy chủ không cài đặt PHP. Có cách nào, có thể với .htaccess để tránh điều này không? Như trong, chỉ cho phép mở các tệp PHP nếu máy chủ PHP được cài đặt?

+1

Bạn có thể sử dụng ''. – mario

+0

tại sao không chỉ hạn chế quyền truy cập vào một máy chủ (cân bằng tải) duy nhất? – Kubee

Trả lời

1

Nếu có thể lưu trữ tệp bên ngoài gốc tài liệu, bạn có thể khắc phục sự cố bằng cách lưu trữ tất cả dữ liệu nhạy cảm bên ngoài docroot. Sau đó, bạn sẽ có các tập lệnh có thể truy cập công khai của mình sử dụng include để truy cập các tệp đó.

Vì vậy, nếu bạn tải lên /username/public_html, và public_html là gốc tài liệu của bạn (ví dụ, foo.uni.edu/file.php/username/public_html/file.php), sau đó bạn sẽ tải lên /username/file.php thay vào đó và đặt kịch bản khác trong /username/public_html mà chỉ chứa một cái gì đó giống như include('../file.php');

này là thực tiễn tốt trong mọi trường hợp, trong trường hợp lỗi cấu hình trên máy chủ đã ngừng phân tích cú pháp PHP.

Bạn cũng có thể thử sử dụng IfModuleFilesMatch để từ chối quyền truy cập vào các file PHP nếu mod_php không được kích hoạt:

<IfModule !mod_php.c> 
    <FilesMatch "\.php$"> 
     Order Deny,Allow 
     Deny from All 
    </FilesMatch> 
</IfModule> 

Nếu điều này không làm việc, hãy thử !mod_php5.c để thay thế.

+0

Một trong các mod cho phép lỗi bị từ chối khi cố gắng truy cập tệp php (trong máy chủ có cài đặt php) – vascoFG

+0

Có thể các máy chủ đang chạy cài đặt PHP4 cổ không? Nếu vậy, hãy thử '! Mod_php4.c'. Nếu điều đó không có tác dụng, tôi e là tôi bị bối rối. – Kelvin

Các vấn đề liên quan