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.

wprowadź opis zdjęcia tutaj

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 wprowadź opis zdjęcia tutaj
  • Wybierz wszystkie tabele, a następnie w menu wybierz zastąp prefiks tabeli. wprowadź opis zdjęcia tutaj
  • W polu „Od” wpisz „wp_”. W „Do” wpisz swój prefiks, „foo_” w tym przykładzie i naciśnij „Prześlij”. wprowadź opis zdjęcia tutaj
  • Tabele powinny teraz wyglądać następująco: wprowadź opis zdjęcia tutaj

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. wprowadź opis zdjęcia tutaj i zmień go na „foo_”. Liczba wpisów, które musisz zmienić, zależy od liczby użytkowników. wprowadź opis zdjęcia tutaj

To powinno wystarczyć do zmiany prefiksu w istniejącej instalacji



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow