Extra säkerhet för WordPress: behörigheter, wp-config och .htaccess
Uppdateringar, ett starkt lösenord och tvåstegsverifiering är grunden för en säker WordPress-sajt. Härdning (hardening) kommer ovanpå det: du ställer in sajten så att en säkerhetslucka eller ett kapat konto gör mindre skada. Här läser du vilka inställningar det gäller och hur du gör dem på ditt webbhotellspaket.
Det som redan sker på servern
En del är redan ordnat på våra servrar. xmlrpc.php är stängd som standard (WordPress: åtkomst till xmlrpc.php fungerar inte), farliga PHP-funktioner är avstängda (PHP-säkerhet: inaktiverade funktioner), och det körs en brandvägg för webbtrafik och en skanner för skadlig kod. Se Web Application Firewall och Imunify360: skanna din webbplats efter skadlig kod. Stegen nedan gör du själv, på din egen sajt.
Alla filer redigerar du i DirectAdmin med Filhanteraren (File Manager). Filer som börjar med en punkt, som .htaccess, ser du först när du visar dolda filer: se Visa och redigera dolda filer som .htaccess. Gör först en kopia av varje fil och lägg kopian utanför public_html.
1. Ingen kodredigering från adminpanelen
Öppna wp-config.php i domains/example.com/public_html och lägg den här raden ovanför raden med "sluta redigera" (That's all, stop editing!):
define( 'DISALLOW_FILE_EDIT', true );
Redigerarna för tema- och tilläggsfiler försvinner då från adminpanelen. Den som kapar ett administratörskonto kan då inte med några klick lägga in skadlig kod i ditt tema. Att installera och uppdatera tillägg fungerar som vanligt. Sätt i samma fil WP_DEBUG till false, så att felmeddelanden aldrig visas för besökarna.
2. Ingen PHP i mappen uploads
I wp-content/uploads hör bilder och dokument hemma, inte PHP. En inkräktare som kan ladda upp en fil via en säkerhetslucka försöker just där lägga en PHP-fil och anropa den. Skapa en fil .htaccess i wp-content/uploads med:
<Files *.php> Require all denied </Files>
Kontrollera sedan att din sajt, dina formulär och ditt mediebibliotek fortfarande fungerar.
3. Ingen mapplista
Finns det ingen index.php eller index.html i en mapp kan en webbserver visa en lista över alla filer. Lägg högst upp i .htaccess i public_html:
Options -Indexes
Du testar genom att anropa en mapp utan indexfil, till exempel https://example.com/wp-content/uploads/. Du ska då se en felsida (403 eller 404), ingen lista.
4. Behörigheter för filer och mappar
| Vad | Behörigheter |
|---|---|
| Mappar | 755 |
| Filer | 644 |
wp-config.php | Striktare: 600 eller 640. Prova 600 och kontrollera att din sajt fortfarande fungerar. |
Använd aldrig 777: då får alla på servern skriva i den mappen. Säger en guide att det behövs för att uppladdning ska fungera ligger orsaken någon annanstans. Ändra behörigheter: se Behörigheter för filer och mappar (chmod).
5. Inga rester i webbmappen
Allt i public_html går att hämta via webben. Städa därför bort:
- kopior av
wp-config.php, somwp-config.php.bakellerwp-config.old. De innehåller ditt databaslösenord och skickas som vanlig text; - säkerhetskopior som
backup.zipellerdatabase.sql; - en mapp
.gitfrån en utvecklare; wp-content/debug.log;- testfiler som
info.phpmedphpinfo().
Vill du göra en enskild fil oåtkomlig, se Blockera filer via .htaccess.
6. Headers och inloggning
- Säkerhetsheaders talar om för webbläsaren hur den ska hantera din sajt. Se HSTS och säkerhetsheaders för din webbplats.
- Inloggningssidan begränsar du till din egen IP-adress med Skydda wp-login.php i WordPress.
- Tvåstegsverifiering för administratörer: se Ställ in tvåstegsverifiering för WordPress.
Att dölja WordPress-versionen är städning, inte säkerhet: attackprogram provar en lucka ändå. Bara uppdatering täpper till luckan.
Och ett säkerhetstillägg?
Ett säkerhetstillägg samlar ofta en brandvägg, en skanner och inloggningsskydd. En brandvägg i ett tillägg fungerar först när WordPress redan körs; brandväggen på servern stoppar förfrågningar tidigare. Ett tillägg är alltså ett komplement, främst för tvåstegsverifiering och för att begränsa inloggningsförsök. Använd högst ett: två säkerhetstillägg samtidigt krockar ofta.
.htaccess eller wp-config.php slår ut hela sajten. Se Fel 500 eller "kritiskt fel" på din webbplats (även efter en WordPress-uppdatering).Läs mer
- Hardening WordPress (developer.wordpress.org, på engelska)
Vill du lära dig mer? Gå den kostnadsfria WordPress-kursen, lektion 7.4 Härda sajten: behörigheter, headers och säkerhetstillägg.
