WordPress
Beveilig uw installatie
Zoeken…
Opmerkingen
WordPress-websites worden vaak gehackt. Dit onderwerp is bedoeld voor technieken en werkwijzen die de beveiliging van uw WordPress-installatie verbeteren, meer dan wat wordt bereikt met een basisinstallatie.
Afgezien van dit onderwerp is de Hardening WordPress Codex-pagina een andere goede plek om te lezen over het beveiligen van een WordPress-installatie.
Schakel de bestandseditor uit
De bestandseditor die wordt geleverd met WordPress is een beveiligingsrisico. Als een aanvaller beheerderstoegang krijgt tot uw WordPress-website, kan deze gemakkelijk schadelijke code in thema- en plug-inbestanden invoegen. Het is ook een risico bij klanten die niet weten wat ze doen. Een eenmaal misplaatste dubbele punt in de bestandseditor kan een site breken en ontoegankelijk maken vanuit de browser.
Schakel in uw WordPress wp-config.php
bestand de bestandseditor uit door de volgende coderegel toe te voegen.
define( 'DISALLOW_FILE_EDIT', true );
Die regel heeft het gewenste effect wanneer deze ook wordt toegevoegd aan het bestand functions.php
van uw thema, maar het is beter om toe te voegen aan wp-config.php
.
Als u WordPress CLI gebruikt om WordPress te installeren, kunt u de volgende opdracht gebruiken om een wp-config.php
bestand te maken met bestandsbewerking uitgeschakeld.
/* 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
Deze methode is handig als u WordPress met een script installeert.
Verplaats wp-config.php
De meest gevoelige informatie van een WordPress-installatie wordt opgeslagen in het wp-config.php
. Als een hacker toegang krijgt tot dit bestand, heeft deze volledige controle over uw website.
Standaard wordt wp-config.php
opgeslagen in de installatiemap van WordPress. Om dit bestand moeilijker te stelen te maken, kunt u het uit de voor het web toegankelijke map verplaatsen. Als u het slechts één map hierboven verplaatst, vindt WordPress het automatisch. Als u wp-config.php
naar een andere locatie verplaatst, maakt u een leeg bestand met de naam wp-config.php
in de installatiemap van WordPress. Voeg vervolgens het volgende toe:
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');
Mogelijk moet u php
uitvoerbaar maken in de map waarin u wp-config.php plaatst. U moet php in zo weinig mogelijk mappen uitvoerbaar maken. Een goed systeem plaatst de WordPress-installatie in /path/to/wordpress/install/
en de config in /path/to/wordpress/config
. U moet ervoor zorgen dat de configuratiemap niet toegankelijk is voor het web en geen andere gevoelige informatie plaatst in /path/to/
of hoger in de mappenhiërarchie. In dat geval zou je een regel schrijven die lijkt op het volgende in je php.ini
:
open_basedir = "/path/to/wordpress/install/;/path/to/wordpress/config"
Deze techniek is controversieel en sommige mensen denken niet dat het de veiligheid verbetert. Uitgebreide discussie over het onderwerp is te lezen bij deze WordPress StackExchange-vraag .
Stel een aangepast voorvoegsel in voor WordPress-tabellen
Wanneer u WordPress op uw server installeert, plaatst het installatiescript een prefix voor alle namen van de WordPress MySQL-tabel. Dit voorvoegsel is standaard ingesteld op 'wp_'. De WordPress-berichtentabel wordt bijvoorbeeld wp_posts
genoemd. Door het voorvoegsel van de tabel te wijzigen, kunt u enige beveiliging door obscurity creëren. Op deze manier moet een hacker die een SQL-injectieaanval probeert, het voorvoegsel van uw tabel raden in plaats van alleen 'wp_' te gebruiken. U kunt dit voorvoegsel instellen op wat u maar wilt.
Voorvoegsel instellen in nieuwe WordPress-installatie
Als u de beroemde installatie van 5 minuten gebruikt Wijzig het voorvoegsel in het veld tijdens de installatie.
Als u installeert via WordPress CLI, gebruikt u de volgende opdracht:
// 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
Wijzig het voorvoegsel in bestaande installatie
Het wijzigen van het voorvoegsel is iets moeilijker. Gebruik eerst een FTP-programma zoals FileZilla om het wp-config.php
bewerken. Wijzig de invoer $table_prefix = 'wp_';
naar $table_prefix = 'foo_';
het vervangen van 'foo' voor het gewenste voorvoegsel.
Vervolgens moeten we de database bewerken. Als u toegang hebt tot phpMyAdmin, logt u in en doet u het volgende:
- Selecteer de WordPress-database
- Selecteer alle tabellen en selecteer in de vervolgkeuzelijst het tabelvoorvoegsel vervangen.
- Typ 'wp_' in 'Van'. Typ in "Aan" uw voorvoegsel, 'foo_' in dit voorbeeld en druk op "Verzenden".
- Tabellen moeten er nu zo uitzien:
Als u phpMyAdmin niet kunt gebruiken, gebruikt u de volgende MySQL-opdracht:
RENAME table `wp_comments` TO `foo_comments`
U moet die opdracht voor elke tabel uitvoeren en 'opmerkingen' vervangen door de andere tabelnamen.
Vervolgens moeten we enkele vermeldingen in sommige tabellen wijzigen. Voer deze query uit op de tabel 'foo_options'
SELECT * FROM foo_options WHERE option_name LIKE '%user_roles%'
Er moet een vermelding met optienaam van 'wp_user_roles' verschijnen. Wijzig in dat item het item 'option_name' van wp_user_roles
in foo_user_roles
.
Open vervolgens de 'foo_usermeta' tabel en vind elk item met 'wp_' aan de voorkant. en verander het naar 'foo_'. Het aantal vermeldingen dat u moet wijzigen, is afhankelijk van het aantal gebruikers dat u hebt.
Dat zou alles moeten zijn wat u nodig hebt om het voorvoegsel in een bestaande installatie te wijzigen