WordPress
Säkra din installation
Sök…
Anmärkningar
WordPress-webbplatser hackas ofta. Detta ämne är för tekniker och metoder som ökar säkerheten för din WordPress-installation utöver vad som uppnås i en basinstallation.
Bortsett från detta ämne är en annan bra plats att läsa om att säkra en WordPress-installation Hardening WordPress Codex-sida .
Inaktivera File Editor
Filredigeraren som levereras med WordPress är en säkerhetsrisk. Om en angripare får administratörstillträde till din WordPress-webbplats kan de enkelt sätta in skadlig kod i tema- och plugin-filer. Det är också en risk för kunder som inte vet vad de gör. När en kollaps i filredigeraren inte har placerats kan den bryta en webbplats och göra den otillgänglig från webbläsaren.
wp-config.php
din WordPress wp-config.php
fil genom att lägga till följande kodrad.
define( 'DISALLOW_FILE_EDIT', true );
Den raden kommer att ha önskad effekt när den läggs till i ditt temas functions.php
fil också, men det är bättre att lägga till i wp-config.php
.
Om du använder WordPress CLI för att installera WordPress kan du använda följande kommando för att skapa en wp-config.php
fil med wp-config.php
inaktiverad.
/* 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
Den här metoden är användbar om du installerar WordPress med ett skript.
Flytta wp-config.php
Den mest känsliga informationen för en WordPress-installation lagras i wp-config.php
filen. Om en hacker får tillgång till den här filen har de total kontroll över din webbplats.
Som standard wp-config.php
i installationsmappen för WordPress. För att göra denna fil svårare att stjäla kan du flytta den från den webbåtkomliga mappen. Om du flyttar den bara en mapp ovan hittar WordPress den automatiskt. Om du flyttar wp-config.php
till en annan plats skapar du en tom fil som heter wp-config.php
i WordPress installationsmapp. Lägg sedan till följande:
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');
Du kan behöva göra php
körbart i mappen du placerar wp-config.php i. Du bör göra php körbart i så få mappar som möjligt. Ett bra system sätter WordPress-installationen i /path/to/wordpress/install/
och config in /path/to/wordpress/config
. Du skulle se till att konfigurationsmappen inte är tillgänglig på webben och inte placerar någon annan känslig information placeras i /path/to/
eller högre i mapphierarkin. I så fall skulle du skriva en rad som liknar följande i din php.ini
:
open_basedir = "/path/to/wordpress/install/;/path/to/wordpress/config"
Den här tekniken är kontroversiell och vissa tycker inte att den förbättrar säkerheten. Omfattande diskussion om ämnet kan läsas på denna WordPress StackExchange-fråga .
Ställ in ett anpassat prefix för WordPress-tabeller
När du installerar WordPress på din server kommer installationsskriptet att placera ett prefix framför alla WordPress MySQL-tabellnamn. Detta prefix är som standard inställt på 'wp_'. WordPress- wp_posts
till exempel att kallas wp_posts
. Genom att ändra tabellprefixet kan du skapa viss säkerhet genom oklarhet. På det här sättet när en hackare försöker SQL-injektionsattacker, måste de gissa prefixet för ditt bord snarare än att bara använda 'wp_'. Du kan ställa in detta prefix till vad du vill.
Ställ in prefix i ny WordPress-installation
Om du använder berömd 5 minuters installation Ändra prefix i fältet under installationen.
Om du installerar via WordPress CLI använder du följande kommando:
// 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
Ändra prefix i befintlig installation
Att ändra prefixet är lite svårare. Använd först ett FTP-program som FileZilla för att redigera wp-config.php
filen. Ändra posten $table_prefix = 'wp_';
till $table_prefix = 'foo_';
ersätter "foo" med önskat prefix.
Nästa måste vi redigera databasen. Om du har tillgång till phpMyAdmin, logga in och gör följande:
- Välj WordPress-databasen
- Markera alla tabeller och i rullgardinsmenyn, välj ersätt tabellprefix.
- Skriv "wp_" i "Från". I "Till" skriver du ditt prefix 'foo_' i det här exemplet och trycker på "Skicka".
- Tabeller ska nu se ut så här:
Om du inte kan använda phpMyAdmin, använd följande MySQL-kommando:
RENAME table `wp_comments` TO `foo_comments`
Du måste köra det kommandot för varje tabell och ersätta "kommentarer" med de andra tabellnamnen.
Nästa måste vi ändra några poster i vissa tabeller. Kör den här frågan på 'foo_options'-tabellen
SELECT * FROM foo_options WHERE option_name LIKE '%user_roles%'
En post med alternativnamnet "wp_user_roles" ska visas. I den posten ändra posten "option_name" från wp_user_roles
till foo_user_roles
.
Öppna sedan upp 'foo_usermeta' -bordet och hitta alla poster med 'wp_' framtill. och ändra det till 'foo_'. Antalet poster du måste ändra beror på hur många användare du har.
Det borde vara allt du behöver för att ändra prefixet i en befintlig installation