2012-03-08 30 views
28

Tôi đã được thông báo rằng có expose_php = On trong php.ini của tôi là một vấn đề bảo mật và là, cho rằng, không tuân thủ PCI. Nghiên cứu của tôi về nó cho đến nay cho thấy rằng tắt nó là nguy cơ thấp và về cơ bản sẽ ngừng gửi lại phiên bản PHP trong tiêu đề, tuy nhiên tôi tự hỏi nếu có khả năng là bất kỳ vấn đề mà đi vào mặt sau của điều này thay đổi.Biến expose_php OFF trong php.ini

Các vấn đề tiềm năng mà tôi đang nghĩ đến là các dịch vụ của bên thứ ba (nhà cung cấp thanh toán, hệ thống theo dõi email, API phát trực tuyến) mong đợi bạn phản hồi với tiêu đề cho biết bạn đang chạy phiên bản PHP, có thể trên một phiên bản nhất định?

Đây có phải là sự thay đổi liền mạch hoặc điều này có khả năng gây ra sự cố không?

Trả lời

45

Đúng vậy.

Đặt expose_php = Off chỉ ngăn máy chủ web gửi lại tiêu đề X-Powered-By.

Trong khi người ta có thể nói rằng tin tặc tiềm năng có thể tìm kiếm phiên bản cũ của PHP với lỗ hổng bảo mật để khai thác, họ có thể làm tương tự ngay cả khi tiêu đề đã bị tắt. Theo ý kiến ​​của tôi, đó là một điều tốt để làm, nhưng tôi không mong đợi nó để cung cấp bảo vệ nhiều.

Về mặt tương tác với các dịch vụ của bên thứ ba, họ không cần phải quan tâm về phiên bản PHP bạn đang sử dụng. Họ sẽ có thể phục vụ nội dung theo các định dạng nền tảng bất khả tri như JSON, XML, v.v. để các dịch vụ có thể được tiêu thụ bởi bất kỳ nền tảng nào và không chỉ PHP.

Trong bất kỳ trường hợp nào, để chúng dựa vào phiên bản PHP "của người tiêu dùng" là vô dụng, vì tiêu đề có thể dễ dàng bị tắt và thậm chí có thể được người quản trị máy chủ điều khiển.

Do đó, nó không phải là một vấn đề khi tắt nó đi.

7

Không được có tác dụng phụ tiêu cực khi bạn tắt expose_php.

Tất cả những gì bạn thực hiện là xóa tiêu đề X-Powered-By và ngừng nhận thông số từ trả lại tín dụng và hình ảnh PHP.

Bất kỳ ứng dụng nào của bên thứ ba mà phụ thuộc vào trên tiêu đề là tinh ranh. Bạn luôn có thể giả mạo tiêu đề nếu cần.

+0

Làm cách nào để nhận tín dụng và hình ảnh với GET? – user4271704

+0

@ user4271704 http://stackoverflow.com/q/10458610/31671 – alex

3

Hoàn toàn không có hại trong việc bật hoặc tắt tùy chọn này.

Tắt tính năng này sẽ không thêm bất kỳ bảo mật nào vào trang web của bạn. Những công cụ script-kiddie quá ngu ngốc đến nỗi họ không bao giờ bận tâm nói với một nền tảng từ nền tảng khác.

Chưa kể rằng nếu trang web của bạn là một số khung công tác/CMS, thì việc ẩn hiện diện PHP cũng là vô dụng.

3

Không có mối đe dọa bảo mật nào, nhưng việc hiển thị phiên bản cũ của PHP có thể là lời mời cho các tin tặc thử và khai thác các lỗ hổng được ghi lại trong các phiên bản trước.

Về dịch vụ của bên thứ ba, chúng độc lập với nền tảng và không cần phải quan tâm đến phiên bản PHP nào chúng tôi đang sử dụng. Nếu cần, chúng ta có thể thiết lập một tiêu đề rỗng hoặc như dưới đây.

header('X-Powered-By: Venu'); 
+0

Hoặc chỉ xóa hoàn toàn nó với ['header_remove ('X-Powered-By')'] (http://www.php.net/header_remove) . – Pang

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