Att säkra din WordPress-webbplats mot SQL-injektionsattacker är nödvändigt för att skydda dina data och upprätthålla dina besökares förtroende.
SQL-injektion är en vanlig teknik som används av hackare för att attackera din databas. När de väl har gjort det kan hackare läsa dina känsliga data, ändra dem och ta kontroll över hela din databas.
För att skydda din webbplats från det här hotet är det viktigt att du implementerar kraftfulla säkerhetsåtgärder på din webbplats.
På WPBeginner tar vi säkerhet på största allvar och har gjort allt vi kan för att skydda vår webbplats från hackare och skadlig kod. Många av de säkerhetsmetoder som vi rekommenderar mot SQL-injektionsattacker är metoder som vi själva har använt med framgång.
I den här artikeln delar vi med oss av några konkreta tips för att förhindra SQL-injektionsattacker i WordPress, steg för steg.
Varför förhindra SQL-injektionsattacker i WordPress?
SQL står för Structured Query Language, vilket är ett programmeringsspråk som kommunicerar med WordPress-webbplatsens databas. Utan denna funktion kan din webbplats inte generera något dynamiskt innehåll.
Obehöriga inmatningar från användare, outdated programvara eller avslöjande av känslig information kan dock orsaka säkerhetsproblem och göra det enkelt för hackare att utföra SQL-injektionsattacker.
Denna attack riktar sig mot din database server och adderar skadlig kod eller uttalanden till din SQL. När de gör det kan hackare använda känslig information som lagras i din database, gillar användardata för identitetsstöld, kontoövertagande, ekonomiskt bedrägeri och mer.
De kan också ändra databasposter eller kontobehörigheter och utföra DDoS-attacker, vilket gör det svårt för faktiska användare att besöka din webbplats.
Detta kan skada kundernas förtroende, påverka användarupplevelsen negativt och minska webbplatstrafiken, vilket är dåligt för tillväxten i ditt småföretag.
Med detta sagt, låt oss ta en titt på några praktiska tips som kan förhindra SQL-injektionsattacker i WordPress. Här är en snabb översikt över vad vi kommer att prata om i den här artikeln:
- Perform Site Updates Regularly And Use a Firewall
- Hide Your WordPress Version
- Change the WordPress Database Prefix
- Validate User Data
- Limit User Role Access and Permissions
- Create Custom Database Error Messages
- Remove Unnecessary Database Functionality
- Bonus: Use WPBeginner Pro Services to Create a Secure Site
Note: Innan du gör några ändringar i din database i förebyggande syfte rekommenderar vi att du skapar en backup av den. På så sätt kan du använda backupen för att fixa det om något går fel. För detaljer, se vår tutorial om hur du gör en backup av WordPress database manuellt.
1. Utför updates av webbplatser regelbundet och använd en firewall
Ett effektivt sätt att förhindra SQL-injektionsattacker är att regelbundet updating din WordPress site till den senaste versionen. Dessa updates åtgärdar ofta säkerhetsproblem, inklusive software issues i databaser, vilket gör det svårt för hackare att attackera your webbplatser.
Om du använder en outdated version av WordPress rekommenderar vi att du aktiverar automatiska uppdater ingar till den senaste versionen genom att besöka sidan Dashboard ” Updates.
Här klickar du helt enkelt på länken ”Aktivera automatiska uppdateringar för alla nya versioner av WordPress”. Nu kommer alla större uppdateringar att installeras på din webbplats när de släpps.
För mer information kanske du gillar vår guide för nybörjare om hur du uppdaterar WordPress på ett säkert sätt.
När du har gjort det kan du också add to en firewall för ytterligare säkerhet. Den här funktionen fungerar som en sköld mellan din site och inkommande trafik och blockerar vanliga säkerhetshot, inklusive SQL-attacker, innan de når din website.
Om du driver ett litet onlineföretag rekommenderar vi Sucuri, som är ett av de bästa brandväggsalternativen för WordPress på marknaden. Den erbjuder en brandvägg på applikationsnivå, brute force prevention samt tjänster för borttagning av skadlig kod och svarta listor, vilket gör den till ett utmärkt val.
Vi har förstahandserfarenhet av verktyget. Det hjälpte oss till och med att blockera 450.000 WordPress-attacker på vår webbplats tidigare.
Sucuri kanske dock inte är tillräckligt kraftfullt för större webbplatser med hög trafik. I så fall kan du överväga Cloudflare, som kan ge dig säkerhetsfunktioner såväl som ett imponerande CDN-nätverk (Content Delivery Network).
Om du är osäker på vilket alternativ som är bäst för din webbplats kan du läsa vår artikel om varför vi bytte från Sucuri till Cloudflare eller vår jämförelse mellan Sucuri och Cloudflare.
2. Dölj din WordPress-version
Som standard visar WordPress det aktuella versionsnumret för den programvara som du använder på din website. Om du till exempel använder WordPress 6.4, kommer denna version att visas på din site för tracking.
Ditt versionsnummers offentliga synlighet kan dock skapa säkerhetshot och göra det lättare för hackare att utföra WordPress SQL-injektionsattacker.
Detta beror på att varje version av WordPress har sina egna unika sårbarheter som angripare kan utnyttja efter att ha upptäckt din version. This will allow them to add malicious code snippets to your site through vulnerable input fields.
Du kan enkelt ta bort versionsnumret från din site genom att lägga till följande code snippet i din functions.php-fil.
add_filter('the_generator', '__return_empty_string');
När du har gjort det kan hackare inte hitta ditt WordPress versionsnummer via automatiska scanners eller på något annat sätt.
Note: Tänk på att ett mindre error när du lägger till kod kan göra din website otillgänglig. Det är därför vi rekommenderar WPCode. Det är det bästa code snippets plugin som gör det supersäkert och enkelt att lägga till customize-kod på din site.
För mer detaljer, se vår tutorial om hur du tar bort WordPress versionsnummer på rätt sätt.
3. Ändra prefixet för WordPress Database
Som standard addar WordPress prefixet wp_ till all din database, vilket gör det enkelt för hackare att planera en attack genom att rikta in sig på prefixet.
Det enklaste sättet att förhindra SQL-injektionsattacker är att ändra prefixet för standarddatabasen med något unikt som hackare inte kan gissa sig till.
Du kan enkelt göra detta genom att ansluta din website med FTP. Efter det öppnar du filen wp-config.php och hittar ändra $table_prefix-raden
. Sedan kan du ändra det från bara standard wp_
till något annat som detta: wp_a123456_
.
$table_prefix = 'wp_a123456_';
Därefter måste du besöka cPanel på ditt webbhotellkonto. För denna handledning kommer vi att använda Bluehost. Din cPanel kan dock se lite annorlunda ut beroende på ditt webbhotell.
Här växlar du till tabben ”Advanced” och klickar på knappen ”Manage” bredvid ”PHPMyAdmin” section.
Detta kommer att öppna en new page där you måste select your database name from the left column and switch to the ”SQL” tabs from the top.
Följaktligen kan du add to följande SQL sökning i text boxen.
Kom bara ihåg att ändra prefixet för databasen till det som du valde när du redigerade filen wp-config.php.
RENAME table `wp_comments` TO `wp_a123456_comments`;
RENAME table `wp_links` TO `wp_a123456_links`;
RENAME table `wp_options` TO `wp_a123456_options`;
RENAME table `wp_postmeta` TO `wp_a123456_postmeta`;
RENAME table `wp_RENAME table `wp_commentmeta` TO `wp_a123456_commentmeta`;
posts` TO `wp_a123456_posts`;
RENAME table `wp_terms` TO `wp_a123456_terms`;
RENAME table `wp_termmeta` TO `wp_a123456_termmeta`;
RENAME table `wp_term_relationships` TO `wp_a123456_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_a123456_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_a123456_usermeta`;
RENAME table `wp_users` TO `wp_a123456_users`;
Mer information hittar du i vår tutorial om hur du ändrar prefixet för WordPress database för att förbättra säkerheten.
4. Bekräfta data från användare
Hackare brukar utföra SQL-attacker på din webbplats genom att använda fält för inmatning av användardata, t.ex. kommentarsfält eller kontaktformulär.
Därför är det viktigt att validera alla data som skickas in på din WordPress-blogg. Detta innebär att användardata inte kommer att skickas in på din webbplats om de inte följer ett visst format.
Till exempel kommer en användare inte att kunna submit sitt formulär om fältet email address ej har symbolen ’@’. Genom att lägga till denna bekräftelse i de flesta av dina formulärfält kan du förhindra SQL-injektionsattacker.
För att göra detta behöver du Formidable Forms, som är ett avancerat plugin för form builder. Det kommer med ett ”Input Mask Format” alternativ där du kan add to det format som användare måste följa för att submit formulärets field data.
You can add a specific format for phone numbers or single text fields.
Om du inte vill bekräfta dina formulärfält rekommenderar vi WPForms eftersom det är det bästa pluginet för kontaktformulär som kommer med komplett skräppostskydd och Google reCAPTCHA-support.
Du kan också lägga till rullgardinsmenyer och kryssrutor i dina formulär, vilket gör det svårt för hackare att lägga till skadlig data.
För mer detaljer, se vår tutorial om hur du skapar ett säkert kontaktformulär i WordPress.
5. Limitera åtkomst och behörigheter för användares roller
Ett annat tips för att förhindra SQL-injektionsattacker i WordPress är att limitera användarnas åtkomst till din website.
Till exempel, om du har en blogg med flera författare, kommer du att ha olika författare tillsammans med prenumeranter och administratörer. I så fall kan du förbättra säkerheten på site admin genom att limitera den fullständiga admin-åtkomsten till administratören.
Du kan begränsa alla andra roller för användare till specifika funktioner som är obligatoriska för att de ska kunna utföra sitt arbete. Detta kommer att minska användarnas tillgång till din database och förhindra SQL-injektionsattacker.
Du kan göra detta med det kostnadsfria pluginet Remove Dashboard Access. Vid aktivering besöker du helt enkelt sidan Inställningar ” Dashboard Access, där du kan bestämma vilka användarroller som får tillgång till instrumentpanelen.
Om du vill limitera användare beroende på deras capability kan du läsa vår tutorial om hur du lägger till eller tar bort capabilities från användarroller i WordPress.
På samma sätt kan du också begränsa författarna till sina egna poster i ditt admin area för mer säkerhet.
6. Skapa Customize Database Error Messages
Ibland kan dina användare stöta på ett error i databasen på din website, vilket kan visa viktig information om din databas och göra den sårbar för SQL-injektionsattacker.
I så fall rekommenderar vi att du skapar ett custom database error message som kommer att visas för användare när de stöter på detta vanliga error. För att göra detta måste du copy and paste följande content till en notepad app och save filen som ’db-error.php’.
<?php // custom WordPress database error page
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 600'); // 1 hour = 3600 seconds
// If you wish to email yourself upon an error
// mail("your@email.com", "Database Error", "There is a problem with the database!", "From: Db Error Watching");
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Database Error</title>
<style>
body { padding: 20px; background: red; color: white; font-size: 60px; }
</style>
</head>
<body>
You got problems.
</body>
Därefter ansluter du din webbplats till ett FTP-program och uppladdar filen som du just skapade till webbplatsens /wp-content/ directory.
När användare stöter på ett databasfel på din webbplats kommer de att se ett felmeddelande som informerar dem om problemet utan att avslöja någon känslig information.
Dessutom kommer titeln ”Databasfel” att visas i webbläsarfliken.
För mer detaljer, se vår tutorial om hur du lägger till en customize database error page i WordPress.
7. Remove onödig funktionalitet i Database
För att förhindra SQL-injektionsattacker bör du också försöka ta bort all databasfunktionalitet och filer som du inte behöver på din website.
You kan till exempel ta bort onödiga tabeller, trash eller unapproved comments som kan göra your database känslig för hackare.
För att remove onödig funktionalitet i databasen rekommenderar vi WP-Optimize. Det är ett fantastiskt plugin som tar bort onödiga tabeller, post revisioner, drafts, trashade comments, borttagna posts, pingbacks, post metadata, och så mycket mer.
Den tar bort alla filer som du inte behöver och optimerar din database så att den blir säkrare och snabbare. För detaljer, se vår Beginner’s Guide om hur du optimerar din WordPress Database.
Bonus: Använd WPBeginners Pro-tjänster för att skapa en säker site
När du har vidtagit alla förebyggande åtgärder mot SQL-injektionsattacker kan du också välja WPBeginner Pro Services.
Vi kan hjälpa dig att identifiera och fixa alla andra säkerhetsproblem som du ej känner till. Om du redan har utsatts för en SQL-injektionsattack kan våra experter dessutom hjälpa dig att begränsa skadan och återskapa dina system.
You can also hire us to improve your site’s speed optimization, design, sökmotorsoptimering, or even completely rebuild your existing WordPress site, whether it’s been hacked or ej.
För mer information, kontrollera alla våra professionella WPBeginner-tjänster.
Vi hoppas att den här artikeln hjälpte dig att lära dig hur du förhindrar SQL-injektionsattacker i WordPress. Du kanske också vill läsa vår nybörjarguide om hur du söker efter säkerhetsuppdateringar för WordPress eller vår ultimata guide till WordPress-säkerhet.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Syed Balkhi
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Jiří Vaněk
WordPress security is alpha and omega for me. Related to that is SQL, which I’ve never paid much attention to. Thanks for this list of great tips. I’m going to check my blog right away to see what I can improve according to your list. At least I’ll try to hide the version and so on.