WordPress
Zabezpiecz swoją instalację
Szukaj…
Uwagi
Witryny WordPress są często zhakowane. Ten temat dotyczy technik i praktyk, które zwiększają bezpieczeństwo instalacji WordPressa ponad to, co osiąga się w instalacji podstawowej.
Oprócz tego tematu innym dobrym miejscem do przeczytania na temat zabezpieczania instalacji WordPress jest strona Kodowanie WordPressa Hartowanie .
Wyłącz edytor plików
Edytor plików dostarczany z WordPress stanowi zagrożenie bezpieczeństwa. Jeśli osoba atakująca uzyska dostęp administratora do witryny WordPress, będzie mogła łatwo wstawić złośliwy kod do plików motywów i wtyczek. Jest to również ryzyko dla klientów, którzy nie wiedzą, co robią. Raz źle umieszczony dwukropek w edytorze plików może uszkodzić witrynę i uniemożliwić dostęp do niej z poziomu przeglądarki.
W pliku WordPress wp-config.php
wyłącz edytor plików, dodając następujący wiersz kodu.
define( 'DISALLOW_FILE_EDIT', true );
Ta linia będzie miała pożądany efekt także po dodaniu do pliku functions.php
kompozycji, ale lepiej jest dodać ją do wp-config.php
.
Jeśli używasz WordPress CLI do instalacji WordPress, możesz użyć następującego polecenia, aby utworzyć plik wp-config.php
z wyłączoną edycją pliku.
/* declare variables beforehand or substitute strings in */
wp core config --dbname="$MYSQL_DBNAME" --dbuser="$MYSQL_USERNAME" --dbpass="$MYSQL_PASS" --dbprefix="$WP_DBPREFIX"_ --locale=en_AU --extra-php <<PHP
define( 'DISALLOW_FILE_EDIT', true );
PHP
Ta metoda jest przydatna, jeśli instalujesz WordPress ze skryptem.
Przenieś wp-config.php
Najbardziej poufne informacje o instalacji WordPress są przechowywane w pliku wp-config.php
. Jeśli haker uzyska dostęp do tego pliku, będzie miał całkowitą kontrolę nad Twoją witryną.
Domyślnie wp-config.php
jest przechowywany w folderze instalacyjnym WordPress. Aby utrudnić kradzież tego pliku, możesz go przenieść z folderu dostępnego w Internecie. Jeśli przeniesiesz go tylko o jeden folder powyżej, WordPress automatycznie go znajdzie. Jeśli przeniesiesz wp-config.php
w inne miejsce, utwórz pusty plik o nazwie wp-config.php
w folderze instalacyjnym WordPress. Następnie dodaj następujące elementy:
define('ABSPATH', dirname(__FILE__) . '/');
// '../../wp-config.php' defines location two folders above installation folder.
// Substitute with actual location of wp-config.php file as necessary.
require_once(ABSPATH . '../../wp-config.php');
Może być konieczne, aby php
wykonywalny w folderze, w którym umieszczasz wp-config.php. Powinieneś uczynić php wykonywalnym w jak najmniejszej liczbie folderów. Dobry system umieszcza instalację WordPress w /path/to/wordpress/install/
a config w /path/to/wordpress/config
. Upewnij się, że folder konfiguracji nie jest dostępny w Internecie i nie umieszczasz żadnych innych poufnych informacji w /path/to/
or above w hierarchii folderów. W takim przypadku w php.ini
napiszesz wiersz podobny do następującego:
open_basedir = "/path/to/wordpress/install/;/path/to/wordpress/config"
Ta technika jest kontrowersyjna i niektórzy uważają, że nie poprawia bezpieczeństwa. Obszerna dyskusja na ten temat można przeczytać w tym pytaniu WordExpress StackExchange .
Ustaw niestandardowy prefiks dla tabel WordPress
Po zainstalowaniu WordPress na serwerze skrypt instalacyjny umieści przedrostek przed wszystkimi nazwami tabel WordPress MySQL. Ten prefiks jest domyślnie ustawiony na „wp_”. Tabela postów WordPress będzie na przykład nazywała się wp_posts
. Zmieniając prefiks tabeli, możesz stworzyć pewne zabezpieczenia przez zaciemnienie. W ten sposób, gdy haker podejmie próbę wstrzyknięcia SQL, będzie musiał odgadnąć prefiks tabeli zamiast używać „wp_”. Możesz ustawić ten prefiks na dowolny.
Ustaw prefiks w nowej instalacji WordPress
Jeśli używasz słynnej 5-minutowej instalacji Zmień prefiks w polu podczas instalacji.
W przypadku instalacji za pomocą interfejsu WordPress CLI użyj następującego polecenia:
// set other variables above, or substitute your strings in.
WP_DBPREFIX=foo
wp core config --dbname="$MYSQL_DBNAME" --dbuser="$MYSQL_USERNAME" --dbpass="$MYSQL_PASS" --dbprefix="$WP_DBPREFIX"_ --locale=en_AU
Zmień prefiks w istniejącej instalacji
Zmiana prefiksu jest nieco trudniejsza. Najpierw użyj programu FTP, takiego jak FileZilla, aby edytować plik wp-config.php
. Zmień wpis $table_prefix = 'wp_';
na $table_prefix = 'foo_';
podstawiając „foo” na żądany prefiks.
Następnie będziemy musieli edytować bazę danych. Jeśli masz dostęp do phpMyAdmin, zaloguj się i wykonaj następujące czynności:
- Wybierz bazę danych WordPress
- Wybierz wszystkie tabele, a następnie w menu wybierz zastąp prefiks tabeli.
- W polu „Od” wpisz „wp_”. W „Do” wpisz swój prefiks, „foo_” w tym przykładzie i naciśnij „Prześlij”.
- Tabele powinny teraz wyglądać następująco:
Jeśli nie możesz użyć phpMyAdmin, użyj następującego polecenia MySQL:
RENAME table `wp_comments` TO `foo_comments`
Musisz uruchomić to polecenie dla każdej tabeli, zastępując „komentarze” innymi nazwami tabel.
Następnie musimy zmienić kilka wpisów w niektórych tabelach. Uruchom to zapytanie w tabeli „foo_options”
SELECT * FROM foo_options WHERE option_name LIKE '%user_roles%'
Powinien pojawić się wpis z nazwą_opcji „wp_user_roles”. W tym wpisie zmień wpis „ wp_user_roles
” z wp_user_roles
na foo_user_roles
.
Następnie otwórz tabelę „foo_usermeta” i znajdź każdy wpis z „wp_” z przodu. i zmień go na „foo_”. Liczba wpisów, które musisz zmienić, zależy od liczby użytkowników.
To powinno wystarczyć do zmiany prefiksu w istniejącej instalacji