Zabezpiecz WordPress: Ukryj informacje o serwerze i PHP w nagłówkach
Objaśnienie
Aby zwiększyć bezpieczeństwo swojej witryny WordPress, możesz ukryć niektóre szczegóły dotyczące serwera i PHP, które zazwyczaj są widoczne w nagłówkach HTTP. Pomaga to w zapobieganiu potencjalnym atakującym przed zbyt dużą wiedzą na temat konfiguracji twojego serwera.
Usuń wersję PHP: Pierwsza funkcja usuwa nagłówek 'X-Powered-By', który zazwyczaj pokazuje wersję PHP. Można to zrobić za pomocą header_remove('X-Powered-By').
Usuń niechciane nagłówki: Inna funkcja służy do usunięcia kilku nagłówków, takich jak 'Server', 'X-AspNet-Version' i 'X-AspNetMvc-Version'. Osiąga się to poprzez usunięcie tych nagłówków w filtrze wp_headers.
Wyłącz podpis serwera: Jeśli twój serwer korzysta z Apache, możesz wyłączyć podpis serwera, który jest małym fragmentem informacji o twoim serwerze, ustawiając nagłówek 'Server' na pustą wartość. To jest sprawdzane i stosowane, jeśli moduł 'mod_headers' jest dostępny.
Zmodyfikuj .htaccess: Na koniec, kod modyfikuje plik .htaccess, aby dodać dyrektywy, które wyłączają podpis serwera i usuwają niektóre nagłówki. Dzieje się to tylko wtedy, gdy plik jest zapisywalny i nie zawiera już tych dyrektyw.
Wprowadzając te zmiany, możesz zmniejszyć ilość informacji, które twój serwer ujawnia, co utrudnia osobom próbującym wykorzystać znane luki bezpieczeństwa oparte na szczegółach serwera.
Kod
<?php
// Function to remove PHP version from HTTP headers
function wp_dudecom_remove_php_version() {
header_remove('X-Powered-By');
}
add_action('init', 'wp_dudecom_remove_php_version');
// Function to remove server signature and other unwanted headers
function wp_dudecom_remove_unwanted_headers($headers) {
unset($headers['X-Powered-By']);
unset($headers['Server']);
unset($headers['X-AspNet-Version']);
unset($headers['X-AspNetMvc-Version']);
return $headers;
}
add_filter('wp_headers', 'wp_dudecom_remove_unwanted_headers');
// Function to disable server signature in Apache
function wp_dudecom_disable_server_signature() {
if (function_exists('apache_get_modules') && in_array('mod_headers', apache_get_modules())) {
header('Server: ');
}
}
add_action('send_headers', 'wp_dudecom_disable_server_signature');
// Function to modify .htaccess to hide server information
function wp_dudecom_modify_htaccess() {
$htaccess_file = ABSPATH . '.htaccess';
if (file_exists($htaccess_file) && is_writable($htaccess_file)) {
$htaccess_content = file_get_contents($htaccess_file);
$directives = "\n# WP-DUDE.COM: Hide server information\n";
$directives .= "ServerSignature Off\n";
$directives .= "Header unset X-Powered-By\n";
$directives .= "Header unset Server\n";
if (strpos($htaccess_content, 'WP-DUDE.COM: Hide server information') === false) {
file_put_contents($htaccess_file, $htaccess_content . $directives);
}
}
}
add_action('init', 'wp_dudecom_modify_htaccess');
?>
Instrukcja
Lokalizacja pliku: Dodaj poniższy kod do pliku functions.php
swojego motywu lub do pliku własnej wtyczki.
Wymagania wstępne: Upewnij się, że masz dostęp do plików WordPressa i możliwość ich edytowania. Znajomość dostępu do serwera za pomocą FTP lub menedżera plików będzie pomocna.
Kroki wdrożenia:
- Dostęp do plików WordPressa: Użyj klienta FTP lub menedżera plików swojego dostawcy hostingu, aby przejść do katalogu instalacji WordPressa.
- Edytuj functions.php lub stwórz wtyczkę:
- Jeśli używasz
functions.php
: Przejdź dowp-content/themes/twojego-aktywnego-motywu/
i otwórzfunctions.php
do edycji. - Jeśli tworzysz wtyczkę: Przejdź do
wp-content/plugins/
, utwórz nowy folder, a w nim stwórz plik PHP (np.hide-server-info.php
).
- Jeśli używasz
- Dodaj kod: Skopiuj i wklej podany kod do pliku, który edytujesz.
- Zapisz zmiany: Zapisz plik po dodaniu kodu.
- Zweryfikuj zmiany: Wyczyść pamięć podręczną przeglądarki i sprawdź nagłówki HTTP swojej witryny za pomocą narzędzi dewelopera w przeglądarce lub online'owego narzędzia do sprawdzania nagłówków, aby upewnić się, że nagłówki zostały usunięte.
Jeśli potrzebujesz pomocy przy tym wdrożeniu lub wymagasz bardziej zaawansowanej funkcjonalności, rozważ skontaktowanie się z wp-dude.com w celu uzyskania fachowej pomocy.