Làm cách nào để đặt Expose_ php thành tắt?

Cài đặt Expose_php được sử dụng để đặt xem thông tin về phiên bản PHP của máy chủ có được hiển thị cho người dùng hay không. Nếu Exposure_php được bật, kẻ tấn công có thể thấy phiên bản PHP đang chạy trên máy chủ của ứng dụng. Nếu ứng dụng chạy trên phiên bản PHP có lỗ hổng, anh ta sẽ có thể khai thác từng lỗ hổng có trong máy chủ. Các nhà phát triển thường bật Exposure_php để cho phép các API tương tác với hệ thống mà không gặp bất kỳ sự cố tương thích nào. Kích hoạt Expose_php để hỗ trợ API là một ý tưởng ngu ngốc vì API có thể được sử dụng thông qua JSON, XML và nhiều ngôn ngữ khác. Những ngôn ngữ này phù hợp nhất với API vì chúng không có vấn đề về khả năng tương thích

PHP chứa một lỗ hổng có thể dẫn đến tiết lộ thông tin trái phép. Sự cố xảy ra khi kẻ tấn công từ xa thực hiện một số yêu cầu HTTP nhất định với các đối số được tạo sẵn, điều này sẽ tiết lộ phiên bản PHP và một thông tin nhạy cảm khác dẫn đến mất tính bảo mật

Không thể nói điều đó tốt hơn bản thân mình. Về cơ bản, nếu bạn đang chạy PHP, có thể ai đó sẽ phát hiện ra phiên bản PHP và các thông tin nhạy cảm khác. Còn được gọi là một kiểu tấn công “dấu vân tay”. Đó không phải là "mức độ đe dọa lúc nửa đêm" hay bất cứ điều gì tương tự, nhưng chắc chắn đáng để dành một chút thời gian để khóa nó lại. một lớp bảo vệ khác để tăng tính bảo mật cho (các) trang web của bạn

Làm thế nào nó hoạt động

Trên các máy chủ chạy PHP, hãy truy cập bất kỳ trang nào, xóa dấu gạch chéo ở cuối và nối thêm bất kỳ chuỗi truy vấn nào sau đây

?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
?=PHPE9568F35-D428-11d2-A769-00AA001ACF42
?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
?=PHPE9568F34-D428-11d2-A769-00AA001ACF42

Nếu lỗ hổng xuất hiện, các yêu cầu được thực hiện với các chuỗi truy vấn này sẽ dẫn đến nhiều loại trứng Phục sinh và các khoản tín dụng PHP chi tiết (). Khi những quả trứng Phục sinh này hiển thị, điều đó có nghĩa là expose_php đã được bật trên máy chủ. Và khi expose_php được bật, các trang do PHP tạo sẽ được gửi với tiêu đề phản hồi X-Powered-By cung cấp thông tin phiên bản/PHP, chẳng hạn như “X-Powered-By: PHP/5.4.7”. Biết số phiên bản của phần mềm giúp kẻ xấu dễ dàng nghiên cứu và khai thác các lỗ hổng đã biết. Vì vậy, hãy dành một chút thời gian để “bịt lỗ rò rỉ” bằng cách vô hiệu hóa expose_php

Vô hiệu hóa expo_php qua php. ban đầu

Nếu bạn có quyền truy cập (và có thể chỉnh sửa) tệp

ServerTokens Prod
ServerSignature Off
0 của máy chủ, thì giải pháp được đề xuất là đặt
ServerTokens Prod
ServerSignature Off
1 và hoàn thành việc đó. Ngoài việc ngăn chặn quyền truy cập vào thông tin tín dụng và trứng phục sinh PHP, việc vô hiệu hóa Expose_php còn có thêm lợi ích là ngăn PHP gửi thông tin phiên bản trong Tiêu đề HTTP X-Powered-By. Vì vậy, thay vì gửi phản hồi sau cho các trang do PHP tạo (e. g. , WordPress)

Làm cách nào để đặt Expose_ php thành tắt?

chúng tôi gửi cái này

Làm cách nào để đặt Expose_ php thành tắt?

Lưu ý rằng ngoài việc PHP gửi thông tin của nó qua tiêu đề X-Powered-By, Apache cũng đang gửi thông tin phiên bản của nó. Chúng ta không thể vô hiệu hóa các chỉ thị của Apache thông qua PHP, nhưng như đã thảo luận trong cuốn sách của tôi, thật đơn giản để thực hiện với các chỉ thị sau được đặt trong tệp cấu hình chính của Apache (httpd. conf)

ServerTokens Prod
ServerSignature Off

Điều này chỉ đơn giản là sử dụng để vô hiệu hóa số phiên bản. Vô hiệu hóa thông tin phiên bản trên các trang do máy chủ tạo, đây là phần thưởng bổ sung

Ngăn chặn truy cập thông qua. htaccess

Nếu bạn không có quyền truy cập vào

ServerTokens Prod
ServerSignature Off
0 (như trường hợp lưu trữ trên máy chủ dùng chung), chúng tôi có thể sử dụng một lát mỏng. htaccess để từ chối quyền truy cập vào các khoản tín dụng PHP và trứng phục sinh

RewriteCond %{QUERY_STRING} PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC]
RewriteRule .* - [F]

Chỉ cần đặt mã đó vào thư mục gốc của trang web của bạn. htaccess và bạn đã sẵn sàng (không cần chỉnh sửa). Làm thế nào nó hoạt động? . Ví dụ, mẫu biểu thức chính quy có thể trông phức tạp, nhưng nó thực sự sử dụng các biến thể trên cùng một mẫu

“______1_______5” khớp với bất kỳ chuỗi tám số và chữ cái nào từ “a” đến “f”

Đây là một so sánh để giúp hình dung mẫu

Sợi dây.

ServerTokens Prod
ServerSignature Off
6
biểu thức chính quy.
ServerTokens Prod
ServerSignature Off
7
Đã dịch. “dấu bằng thoát, chuỗi “PHP”, bất kỳ chuỗi 8, dấu gạch nối, bất kỳ chuỗi 4, gạch nối, bất kỳ chuỗi 4, gạch nối, v.v. ”

Dòng kết thúc bằng cờ “no-case”

ServerTokens Prod
ServerSignature Off
8, làm cho mẫu khớp mẫu không phân biệt chữ hoa chữ thường và tăng hiệu quả của nó. Sau đó, trong dòng thứ hai,
ServerTokens Prod
ServerSignature Off
9 chỉ đơn giản là từ chối quyền truy cập vào bất kỳ yêu cầu phù hợp nào. Cờ
RewriteCond %{QUERY_STRING} PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC]
RewriteRule .* - [F]
0 kết thúc hướng dẫn máy chủ gửi trạng thái 403 "Bị cấm" cùng với yêu cầu

Tất cả cùng nhau sau đó

Kết hợp hai kỹ thuật Apache của chúng tôi, chúng tôi nhận được tương đương với việc vô hiệu hóa expose_php. Một lần nữa, chỉnh sửa

ServerTokens Prod
ServerSignature Off
0 là cách tốt nhất, nhưng khi điều đó là không thể, hai đoạn mã này sẽ đưa bạn đến đó

1) Thêm vào tệp cấu hình chính của Apache (httpd. conf)

# m0n.co/9
ServerTokens Prod
ServerSignature Off

1) Thêm vào Apache httpd. conf hoặc. htaccess

# m0n.co/9
RewriteCond %{QUERY_STRING} PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC]
RewriteRule .* - [F]

Bằng cách kết hợp hai phương pháp của chúng tôi, chúng tôi từ chối quyền truy cập vào thông tin/tín dụng PHP và vô hiệu hóa việc phát sóng phiên bản Apache. Điều đó hiệu quả, nhưng không may là không có cách nào để ngăn chặn expose_php gửi các tiêu đề X-Powered-By của nó bằng cách sử dụng. htaccess (afaik)

Cũng lưu ý rằng

RewriteCond %{QUERY_STRING} PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC]
RewriteRule .* - [F]
5 của Apache phải được bật trên máy chủ để tính năng này hoạt động. Nếu không, hãy xóa hai dòng thứ hai (chỉ thị viết lại) và chỉ sử dụng hai dòng đầu tiên. Chúng là một phần của lõi Apache và sẽ hoạt động để vô hiệu hóa thông tin Apache

Trứng phục sinh PHP

Khi một thứ gì đó được cố ý giấu trong một cuốn sách, ứng dụng hoặc bất cứ thứ gì, nó được gọi là “trứng phục sinh”. PHP có ít nhất bốn trong số chúng

Tín dụng TypeImageURIPHP
Làm cách nào để đặt Expose_ php thành tắt?
RewriteCond %{QUERY_STRING} PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC]
RewriteRule .* - [F]
6
RewriteCond %{QUERY_STRING} PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC]
RewriteRule .* - [F]
7
Nhấp vào đây để xem lớn hơn Logo PHP
Làm cách nào để đặt Expose_ php thành tắt?
RewriteCond %{QUERY_STRING} PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC]
RewriteRule .* - [F]
6
RewriteCond %{QUERY_STRING} PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC]
RewriteRule .* - [F]
9Biểu trưng Zend
Làm cách nào để đặt Expose_ php thành tắt?
RewriteCond %{QUERY_STRING} PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC]
RewriteRule .* - [F]
6
# m0n.co/9
ServerTokens Prod
ServerSignature Off
1Biểu trưng PHP
Làm cách nào để đặt Expose_ php thành tắt?
RewriteCond %{QUERY_STRING} PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC]
RewriteRule .* - [F]
6
# m0n.co/9
ServerTokens Prod
ServerSignature Off
3

Vậy thỏa thuận là gì?

Điều này là tốt và thú vị, nhưng nó có đáng không?

Hét lên

Cảm ơn Warner Nanninga đã chú ý đến điều này và giúp tôi có thêm thông tin. Chúc mừng

Làm cách nào để tắt Exposure_php trong cPanel?

Sử dụng tìm kiếm hàng đầu để tìm "Chọn phiên bản PHP" trong cPanel của bạn. Khi ở trên trang này, bạn sẽ chọn nút menu "Tùy chọn" sẽ đưa bạn đến phần lớn các cài đặt PHP mà chúng tôi cho phép bạn ghi đè. Trên cài đặt Expose_php, hãy thay đổi nó từ được kiểm tra thành không được kiểm tra và điều này sẽ biến việc đặt Expose_php thành tắt

Ý nghĩa của Exposure_php là gì?

expose_php bool. Hiển thị cho mọi người biết rằng PHP đã được cài đặt trên máy chủ , bao gồm phiên bản PHP trong tiêu đề HTTP (e. g. , X-Powered-By. PHP/5. 3. 7). chuỗi disable_functions. Lệnh này cho phép bạn tắt một số chức năng.