2011-10-22 21 views

Trả lời

21

Điều này chỉ hướng dẫn PHP xử lý các tệp kết thúc bằng .php bằng cách chuyển chúng tới trình thông dịch PHP5. Nếu không có cấu hình này, máy chủ web có thể cung cấp các tệp cho trình duyệt web của người dùng cuối dưới dạng mã PHP thô, thay vì thực thi mã. Điều đó làm tăng khả năng nguy hiểm của việc hiển thị thông tin đăng nhập cơ sở dữ liệu hoặc, hoặc các bí mật khác.

Sử dụng cùng một cơ chế, bạn có thể định cấu hình máy chủ web để phân tích cú pháp tệp với các tiện ích mở rộng khác bên cạnh .php làm tập lệnh PHP và đưa chúng tới trình thông dịch PHP. Điều này đôi khi được thực hiện để che giấu các tập lệnh PHP bằng cách đặt tên chúng với các tiện ích .html.

# Interpret both .php & .html as PHP: 
AddHandler php5-script .php .html 
+0

4 năm sau và tôi tự hỏi rằng điều này là cần thiết ngay cả khi tôi có quy tắc này trong cấu hình apache của mình? –

1

Nó nói với php để xử lý bất kỳ tập tin với .php trong tên tập tin, ngay cả khi nó không phải vào cuối. Một tệp có tên là smile.php.gif sẽ được xen kẽ dưới dạng tệp php, điều này rất tệ nếu bạn định sử dụng tập lệnh tải lên. Điều này là do Apache cho phép nhiều phần mở rộng theo thứ tự bất kỳ, vì vậy gif.php.jpg giống như gif.jpg.php. Tôi đã nghe cách tốt nhất để chọn trình xử lý là với FilesMatch. Tất nhiên nếu máy chủ web của bạn có điều này trong httpd.conf của họ, bạn sẽ phải 'loại bỏ' nó bằng cách sử dụng htaccess của bạn trước khi sử dụng FilesMatch nếu bạn không có quyền truy cập vào httpd.conf.

+0

Có thể dễ dàng tải lên tệp, ví dụ: file.php.png, chúng tôi có thể bỏ qua và tấn công trang web bằng cách tải lên tệp có tên là shell.php.png –

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