Vill du förhindra SQL-injektionsattacker i WordPress?
SQL-injektion är en säkerhetsbrist som hackare kan använda för att angripa databasen på din website. När de väl har gjort det kan en angripare läsa dina känsliga data, ändra dem och ta control över hela din database.
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 database. Utan denna funktion kan din site inte generera något dynamiskt content.
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 poster i databaser eller behörighet till konton och utföra DDOS-attacker, vilket gör det svårt för faktiska användare att besöka din website.
Detta kan skada kundernas förtroende, påverka användarnas upplevelse negativt och minska trafiken på din website, vilket är dåligt för tillväxten av ditt småföretag.
Med detta sagt, låt oss ta en titt på några tips för action som kan förhindra SQL-injektionsattacker i WordPress.
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 ”Enable automatic updates for all new versions of WordPress”. Nu kommer alla större updates att installeras på din site 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.
För denna funktion rekommenderar vi Sucuri, som är den bästa programvaran för WordPress firewall på marknaden. Den erbjuder en firewall 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.
Dessutom har verktyget hjälpt oss att blockera cirka 450 000 WordPress-attacker på vår website tidigare.
För mer detaljer, se vår kompletta WordPress säkerhetsguide.
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.
Det faktum att ditt versionsnummer är offentligt kan dock orsaka 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 webbhotell konto. För denna tutorial kommer vi att använda Bluehost, men din cPanel kan 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 injicerar vanligtvis SQL-attacker på din website med hjälp av fält som används för att enter användardata gillar comment sektioner eller formulärfält i kontaktformulär.
Det är därför det är viktigt att bekräfta all data som skickas in på din WordPress blogg. Detta innebär att data från användare inte kommer att skickas in på din site om de ej 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 dropdown-menyer och checkboxes i dina formulär med den. Detta gör det svårt för hackare att add to 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 gratis tillägget Remove Dashboard Access. Vid aktivering besöker du helt enkelt Settings ” Dash board Access page där du kan bestämma vilka roller av användare som får tillgång till dashboarden.
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.
Nu när användare stöter på ett database error på din website, kommer de bara att se ett felmeddelande som informerar dem om issue utan att avslöja någon känslig information.
Dessutom kommer rubriken ”Database Error” att visas i tabben i web browsern.
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å gillar att se vår guide för nybörjare om hantering av WordPress-databaser och våra toppval för de bästa WordPress-pluginsen för databaser.
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 says
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 says
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.