Zabezpieczenie strony na WordPress
Dodanie automatycznych aktualizacji
Tworzymy plik /wp-content/mu-plugins/update.php
Plik tak zapisany uruchomi się niezależnie od wybranego tematu czy innych włączonych pluginów. W nim wprowadzamy kod:
add_filter('auto_update_plugin', '__return_true' ); add_filter('auto_update_theme', '__return_true' ); add_filter('auto_update_translation', '__return_true' );
Zabezpieczenie dostępu do ważnych plików
W pliku .htaccess zamieszczamy wpis:
<Files .htaccess wp-config.php wp-main.php> order allow,deny deny from all </Files>
Umieszczenie danych dostępowych do bazy danych w osobnym pliku
Na serwerze tworzymy dowolny plik php np wp-main.php i w pliku wp-config.php dajemy do niego odwołanie:
require_once 'wp-main.php';
do pliku wp-main.php wprowadzamy wszystkie dane dotyczące dostępu do bazy danych a dostęp do niego ograniczamy w pliku .htaccess
/** The name of the database for WordPress */ define( 'DB_NAME', 'db_username' ); /** MySQL database username */ define( 'DB_USER', 'db_username' ); /** MySQL database password */ define( 'DB_PASSWORD', 'db_password' ); /** MySQL hostname */ define( 'DB_HOST', 'localhost' ); /** Database Charset to use in creating database tables. */ define( 'DB_CHARSET', 'utf8mb4' ); /** The Database Collate type. Don't change this if in doubt. */ define( 'DB_COLLATE', '' );
Wyłączanie edytora plików
W pliku wp-config.php dodajemy kod, który wyłączy możliwość edycji plików tematu z poziomu panelu administratora strony przez Wygląd > Edytor
define(‚DISALLOW_FILE_EDIT’, true);
Zabezpieczenie plików
W pliku .htaccess ustawiamy:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ – [F,L] RewriteRule !^wp-includes/ – [S=3] RewriteRule ^wp-includes/[^/]+\.php$ – [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php – [F,L] RewriteRule ^wp-includes/theme-compat/ – [F,L] </IfModule>
Blokada wykonywania plików PHP wysyłanych przez formularz
Pliki zamieszczone jako załącznik do formularza trafiają do katalogu wp-content/uploads/ warto w nim zamieścić plik .htaccess a w nim zablokować wykonywanie tych plików:
<Files *.php> deny from all </Files>
Zabezpieczenie przed Code injection
W głównym pliku .htaccess umieszczamy:
Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) RewriteRule ^(.*)$ index.php [F,L]