{"id":1260,"date":"2026-08-21T09:44:06","date_gmt":"2026-08-21T07:44:06","guid":{"rendered":"https:\/\/fresh-dev.nl\/blog\/elementor-pro-lek\/"},"modified":"2026-08-21T13:39:18","modified_gmt":"2026-08-21T11:39:18","slug":"elementor-pro-price","status":"publish","type":"blog","link":"https:\/\/fresh-dev.nl\/en\/blog\/elementor-pro-lek\/","title":{"rendered":"Leak in Elementor Pro: does it affect your site and what do you do now?"},"content":{"rendered":"<div class=\"section section-blocks\">\n    <div class=\"container\" data-reveal-group>\n        <div class=\"acf-innerblocks-container\">        <div class=\"block is-content\" id=\"lek-in-elementor-pro-raakt-het-jouw-site\">\n                            <h2>Lek in Elementor Pro: raakt het jouw site?<\/h2>\n                                        <p>Op 19 augustus bracht Elementor versie 4.2.2 van Elementor Pro uit. Daar zit een beveiligingsfix in voor het formulierenblok. Onder bepaalde omstandigheden kon iemand zonder in te loggen een bestand op je server zetten, en dat is het soort fout waar een site helemaal mee overgenomen kan worden.<\/p>\n<p>Elementor Pro draait op miljoenen websites. De kans is dus re\u00ebel dat jij &#8216;m gebruikt, of iemand voor wie je verantwoordelijk bent.<\/p>\n<p><strong>In het kort:<\/strong><\/p>\n<ul>\n<li>Het lek zit in het uploadveld van het Elementor Pro-formulierenblok. Staat er nergens zo&#8217;n veld op je site, dan loop je geen risico.<\/li>\n<li>Weet je niet of Elementor Pro meedraait? Kijk in je WordPress-beheer onder Plugins.<\/li>\n<li>Maak eerst een back-up, van je bestanden en je database. Ook als je haast hebt.<\/li>\n<li>Werk daarna bij naar <strong>4.2.2<\/strong> of hoger. Dat is de hele fix en &#8216;ie kost twee minuten.<\/li>\n<li>Kijk tot slot of er PHP-bestanden in <code>wp-content\/uploads<\/code> staan. Die horen daar niet.<\/li>\n<\/ul>\n<p>In dit artikel:<\/p>\n<ul>\n<li><a href=\"#wat-is-gedicht\">Wat er precies is gedicht<\/a><\/li>\n<li><a href=\"#loop-jij-risico\">Loop jij risico?<\/a><\/li>\n<li><a href=\"#wat-je-vandaag-doet\">Wat je vandaag doet<\/a><\/li>\n<li><a href=\"#al-binnen-geweest\">Hoe je ziet of er al iemand binnen is geweest<\/a><\/li>\n<li><a href=\"#page-builders\">Waarom wij terughoudend zijn met page builders<\/a><\/li>\n<li><a href=\"#voorkomen\">Voorkomen is goedkoper dan opruimen<\/a><\/li>\n<\/ul>\n                                <\/div>\n                <div class=\"block is-image\">\n            <div class=\"image-holder\" data-click-zoom>\n                <img decoding=\"async\"\n                    src=\"https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/elementor-pro-logo-1024x576.jpg\"\n                                            srcset=\"https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/elementor-pro-logo-1024x576.jpg 1024w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/elementor-pro-logo-300x169.jpg 300w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/elementor-pro-logo-768x432.jpg 768w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/elementor-pro-logo-1536x864.jpg 1536w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/elementor-pro-logo-18x10.jpg 18w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/elementor-pro-logo.jpg 1600w\"\n                        sizes=\"(max-width: 767px) 100vw, 720px\"\n                                        alt=\"Logo van Elementor Pro\"\n                >\n                <button type=\"button\" class=\"image-zoom\" aria-label=\"Afbeelding vergroten\"><\/button>\n            <\/div>\n        <\/div>\n                <div class=\"block is-content\" id=\"wat-is-gedicht\">\n                            <h2>Wat er precies is gedicht<\/h2>\n                                        <p>Het zit in het formulierenblok van Elementor Pro, en dan specifiek in het uploadveld. Dat veld gebruik je voor een sollicitatie met cv erbij, een offerte-aanvraag met een tekening, of een schademelding met foto&#8217;s. Bij het verwerken van zo&#8217;n upload werd niet streng genoeg gecontroleerd wat er nou eigenlijk binnenkwam.<\/p>\n<p>Het gevaar zit niet in dat ene bestand, maar in wat er daarna mee kan. Belandt er een PHP-bestand in je uploadmap en is die map vanaf het web te benaderen, dan draait dat bestand gewoon. Vanaf dat moment heb je geen websiteprobleem meer maar een serverprobleem: mail versturen vanaf jouw domein, bij andere sites op dezelfde server komen, of stil blijven zitten tot het de aanvaller uitkomt.<\/p>\n<p>Elementor heeft het gedicht in <strong>Elementor Pro 4.2.2<\/strong>, uitgebracht op 19 augustus 2026. Alles daarvoor draait op de oude code. De release staat in de <a href=\"https:\/\/elementor.com\/pro\/changelog\/\" target=\"_blank\" rel=\"noopener\">changelog van Elementor<\/a>.<\/p>\n                                <\/div>\n                <div class=\"block is-content\" id=\"loop-jij-risico\">\n                            <h2>Loop jij risico?<\/h2>\n                                        <p>Elementor zelf houdt het smal: alleen sites met een Elementor Pro-formulier waarin een uploadveld zit \u00e9n waarbij de optie voor meerdere bestanden aanstaat. Die optie staat standaard uit, dus in de praktijk valt de groep die echt geraakt wordt mee. In de beveiligingspers wordt het ruimer gelezen: daar is \u00e9\u00e9n gepubliceerde pagina met een uploadveld al genoeg.<\/p>\n<p>Wij gaan uit van de ruime lezing. Niet omdat we Elementor niet geloven, maar omdat het voor jou niets uitmaakt welke van de twee klopt: de handeling is hetzelfde en &#8216;ie kost twee minuten.<\/p>\n                                <\/div>\n                <div class=\"block is-image\">\n            <div class=\"image-holder\" data-click-zoom>\n                <img decoding=\"async\"\n                    src=\"https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/elementor-pro-lek-risicocheck-1024x538.jpg\"\n                                            srcset=\"https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/elementor-pro-lek-risicocheck-1024x538.jpg 1024w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/elementor-pro-lek-risicocheck-300x158.jpg 300w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/elementor-pro-lek-risicocheck-768x403.jpg 768w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/elementor-pro-lek-risicocheck-1536x806.jpg 1536w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/elementor-pro-lek-risicocheck-18x9.jpg 18w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/elementor-pro-lek-risicocheck.jpg 1600w\"\n                        sizes=\"(max-width: 767px) 100vw, 720px\"\n                                        alt=\"Drie vragen om te checken of je Elementor Pro-site risico loopt\"\n                >\n                <button type=\"button\" class=\"image-zoom\" aria-label=\"Afbeelding vergroten\"><\/button>\n            <\/div>\n        <\/div>\n                <div class=\"block is-content\" id=\"wat-je-vandaag-doet\">\n                            <h2>Wat je vandaag doet<\/h2>\n                                        <ul>\n<li>Kijk eerst welke versie je draait. In je WordPress-beheer onder <strong>Plugins<\/strong> staat het versienummer achter Elementor Pro.<\/li>\n<li>Maak een back-up van je bestanden \u00e9n je database. Een update die misgaat op een verouderde site is een groter probleem dan het lek zelf.<\/li>\n<li>Werk bij naar 4.2.2 of hoger. Op de meeste sites is dat \u00e9\u00e9n klik.<\/li>\n<li>Kun je niet updaten, bijvoorbeeld omdat er maatwerk op de plugin zit? Zet dan tijdelijk het uploadveld uit in je formulier, of haal dat formulier offline tot je wel kunt.<\/li>\n<li>Loop daarna je site na: staan de formulieren er nog, komt de post binnen, doet je checkout het.<\/li>\n<li>Zet automatische updates aan voor Elementor Pro, of leg vast wie het bijhoudt.<\/li>\n<\/ul>\n<p>Beheer je meer dan \u00e9\u00e9n site, loop ze dan allemaal even langs. E\u00e9n vergeten installatie is genoeg.<\/p>\n                                <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<div class=\"section section-form\">        <div class=\"container\" data-reveal-group>\n            <div class=\"holder\" data-reveal-group-nested data-ignore=\"false\">\n                        <div class=\"content-holder\">\n            <div class=\"inner\">\n                <h3>Twijfel je over jouw site?<\/h3>\n<p>Laat je website achter, dan kijken we er vandaag nog naar. Je hoort van ons wat we zien, ook als er niets aan de hand is.<\/p>\n                            <\/div>\n                    <\/div>\n                                <div class=\"form-holder\" data-reveal-group>\n            <div class=\"inner\">\n                                <script>\nvar gform;gform||(document.addEventListener(\"gform_main_scripts_loaded\",function(){gform.scriptsLoaded=!0}),document.addEventListener(\"gform\/theme\/scripts_loaded\",function(){gform.themeScriptsLoaded=!0}),window.addEventListener(\"DOMContentLoaded\",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>\"function\"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn(\"The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1.\"),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener(\"gform_main_scripts_loaded\",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener(\"gform\/theme\/scripts_loaded\",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener(\"DOMContentLoaded\",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook(\"action\",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook(\"filter\",o,r,e,t)},doAction:function(o){gform.doHook(\"action\",o,arguments)},applyFilters:function(o){return gform.doHook(\"filter\",o,arguments)},removeAction:function(o,r){gform.removeHook(\"action\",o,r)},removeFilter:function(o,r,e){gform.removeHook(\"filter\",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+\"_\"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){\"function\"!=typeof(t=o.callable)&&(t=window[t]),\"action\"==r?t.apply(null,e):e[0]=t.apply(null,e)})),\"filter\"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}});\n<\/script>\n\n                <div class='gf_browser_gecko gform_wrapper gravity-theme gform-theme--no-framework' data-form-theme='gravity-theme' data-form-index='0' id='gform_wrapper_6' ><div id='gf_6' class='gform_anchor' tabindex='-1'><\/div>\n                        <div class='gform_heading'>\n\t\t\t\t\t\t\t<p class='gform_required_legend'><\/p>\n                        <\/div><form method='post' enctype='multipart\/form-data' target='gform_ajax_frame_6' id='gform_6'  action='\/en\/wp-json\/wp\/v2\/blog\/1260#gf_6' data-formid='6' novalidate>\n                        <div class='gform-body gform_body'><div id='gform_fields_6' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id=\"field_6_1\" class=\"gfield gfield--type-text gfield--width-full input-extra gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_6_1'>Naam<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_asterisk\">*<\/span><\/span><\/label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_6_1' type='text' value='' class='large'     aria-required=\"true\" aria-invalid=\"false\"   \/><\/div><\/div><div id=\"field_6_2\" class=\"gfield gfield--type-website gfield--width-full input-extra gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_6_2'>Website<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_asterisk\">*<\/span><\/span><\/label><div class='ginput_container ginput_container_website'>\n                    <input name='input_2' id='input_6_2' type='url' value='' class='large'     aria-required=\"true\" aria-invalid=\"false\" \/>\n                <\/div><\/div><div id=\"field_6_3\" class=\"gfield gfield--type-email gfield--width-full input-extra gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_6_3'>E-mailadres<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_asterisk\">*<\/span><\/span><\/label><div class='ginput_container ginput_container_email'>\n                            <input name='input_3' id='input_6_3' type='email' value='' class='large'    aria-required=\"true\" aria-invalid=\"false\"  \/>\n                        <\/div><\/div><div id=\"field_6_4\" class=\"gfield gfield--type-phone gfield--width-full input-extra field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_6_4'>Telefoonnummer (optioneel)<\/label><div class='ginput_container ginput_container_phone'><input name='input_4' id='input_6_4' type='tel' value='' class='large'    aria-invalid=\"false\"   \/><\/div><\/div><\/div><\/div>\n        <div class='gform-footer gform_footer top_label'> <input type='submit' id='gform_submit_button_6' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' value='Stuur mijn site in'  \/> <input type='hidden' name='gform_ajax' value='form_id=6&amp;title=&amp;description=&amp;tabindex=0&amp;theme=gravity-theme&amp;hash=d6e998ffee71a5aa5f4932ce21c2abc1' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_6' value='iframe' \/>\n            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_6' id='gform_theme_6' value='gravity-theme' \/>\n            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_6' id='gform_style_settings_6' value='' \/>\n            <input type='hidden' class='gform_hidden' name='is_submit_6' value='1' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submit' value='6' \/>\n            \n            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='EUR' value='Pbb41Bbo7wxceqpnss5b3DoIvxmKecmIuFJr+IEjVInSe36+S3y\/WoaJ+Lb+VsjZIj33KoJ3sVxl0oCYRQdqXO5Yddgj0KKPsQ8XwETDgAk6WSM=' \/>\n            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' \/>\n            <input type='hidden' class='gform_hidden' name='state_6' value='WyJbXSIsIjFmODY2YWJjOTNmYzNkYTQwZmI3MTdlMDBjYjU4M2FjIl0=' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_6' id='gform_target_page_number_6' value='0' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_6' id='gform_source_page_number_6' value='1' \/>\n            <input type='hidden' name='gform_field_values' value='' \/>\n            \n        <\/div>\n                        <\/form>\n                        <\/div>\n\t\t                <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_6' id='gform_ajax_frame_6' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'><\/iframe>\n\t\t                <script>\ngform.initializeOnLoaded( function() {gformInitSpinner( 6, 'https:\/\/fresh-dev.nl\/app\/plugins\/gravityforms\/images\/spinner.svg', true );jQuery('#gform_ajax_frame_6').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_6');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_6').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_6').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_6').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_6').removeClass('gform_validation_error');}setTimeout( function() { \/* delay the scroll by 50 milliseconds to fix a bug in chrome *\/ jQuery(document).scrollTop(jQuery('#gform_wrapper_6').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_6').val();gformInitSpinner( 6, 'https:\/\/fresh-dev.nl\/app\/plugins\/gravityforms\/images\/spinner.svg', true );jQuery(document).trigger('gform_page_loaded', [6, current_page]);window['gf_submitting_6'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_6').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_6').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [6]);window['gf_submitting_6'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_6').text());}else{jQuery('#gform_6').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger(\"gform_pre_post_render\", [{ formId: \"6\", currentPage: \"current_page\", abort: function() { this.preventDefault(); } }]);        if (event && event.defaultPrevented) {                return;        }        const gformWrapperDiv = document.getElementById( \"gform_wrapper_6\" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( \"span\" );            visibilitySpan.id = \"gform_visibility_test_6\";            gformWrapperDiv.insertAdjacentElement( \"afterend\", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( \"gform_visibility_test_6\" );        let postRenderFired = false;        function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            gform.core.triggerPostRenderEvents( 6, current_page );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );} );\n<\/script>\n            <\/div>\n        <\/div>\n                    <\/div>\n        <\/div>\n        <\/div><div class=\"section section-blocks\">\n    <div class=\"container\" data-reveal-group>\n        <div class=\"acf-innerblocks-container\">        <div class=\"block is-content\" id=\"al-binnen-geweest\">\n                            <h2>Hoe je ziet of er al iemand binnen is geweest<\/h2>\n                                        <p>Updaten repareert de deur, niet wat er misschien al binnen staat. Dat is het lastige aan dit type lek: het is stil. Vier dingen die je zelf kunt nalopen:<\/p>\n<ul>\n<li>PHP-bestanden in <code>wp-content\/uploads<\/code>. Daar hoort alleen beeld en documenten te staan, verder niets.<\/li>\n<li>Beheerdersaccounts die je niet kent, of bestaande accounts die ineens meer rechten hebben.<\/li>\n<li>Bestanden met een wijzigingsdatum die niet klopt met je laatste update.<\/li>\n<li>Uitgaande mail die jij niet hebt verstuurd, of klachten over spam vanaf jouw domein.<\/li>\n<\/ul>\n<p>Kom je iets tegen, ga dan niet zelf lopen opruimen. Bij een site die echt is overgenomen zitten er meestal meerdere ingangen in, en \u00e9\u00e9n daarvan missen betekent dat je een week later opnieuw begint. Zet &#8216;m offline of in onderhoudsmodus en laat er iemand naar kijken.<\/p>\n                                <\/div>\n                <div class=\"block is-quote\">\n            <p>Als je een hack ontdekt, ben je meestal al te laat. Opruimen kost altijd meer dan voorkomen.<\/p>\n                            <span>&#8211; Jesse Lafeber, Fresh-Dev<\/span>\n                    <\/div>\n                <div class=\"block is-content\" id=\"page-builders\">\n                            <h2>Waarom wij terughoudend zijn met page builders<\/h2>\n                                        <p>Wij bouwen niet met Elementor, Divi of WPBakery. Niet omdat het slechte software is, want dat is het niet, maar vanwege wat je er standaard bij krijgt. Zo&#8217;n builder moet alles kunnen voor iedereen. Dat betekent een berg code op je site die jij nooit gebruikt, maar die wel meelaadt en wel meetelt in wat er stuk kan gaan. Een formulierenblok dat uploads verwerkt is daar een goed voorbeeld van: handig als je het nodig hebt, gewoon extra risico als je het nooit aanzet.<\/p>\n<p>Daar komt bij dat je vastzit aan het ritme van een externe partij. Zij bepalen wanneer de fix er is, jij mag &#8216;m draaien. Bij een lek van dit kaliber is dat precies het moment waarop je liever zelf aan de knoppen zit.<\/p>\n<p>Wij bouwen in code, met alleen de onderdelen die er echt in horen. Dat is geen garantie tegen lekken, die bestaat niet. Het scheelt wel in hoeveel er k\u00e1n lekken, en in hoe snel we het dichthebben als het zover is.<\/p>\n<p>Draai je Elementor en bevalt het je prima? Ook goed. Houd dan wel je updates bij, en weet welke plugins er allemaal meedraaien.<\/p>\n                                <\/div>\n                <div class=\"block is-content\" id=\"voorkomen\">\n                            <h2>Voorkomen is goedkoper dan opruimen<\/h2>\n                                        <p>Dit lek is met een update van twee minuten opgelost. Het volgende lek zit in een andere plugin, komt op een ander moment, en dan is de vraag opnieuw of iemand het opmerkt. Dat is waar <a href=\"https:\/\/fresh-dev.nl\/website-onderhoud\/\">onderhoud<\/a> over gaat: niet \u00e9\u00e9n keer goed opleveren, maar zorgen dat er iemand meekijkt als het misgaat.<\/p>\n<p>Wil je breder weten waar je staat? In onze blog over <a href=\"https:\/\/fresh-dev.nl\/blog\/wordpress-beveiligen\/\">WordPress beveiligen<\/a> staat wat je zelf in een kwartier kunt nakijken.<\/p>\n<p>Wil je dat wij even meekijken of jouw site vatbaar is? Stuur ons je website of plan een adviesgesprek. Liever vandaag dan volgende week.<\/p>\n                                <div class=\"button-holder\">\n            <a href=\"https:\/\/fresh-dev.nl\/adviesgesprek-inplannen\/\" class=\"button\">Plan een adviesgesprek<\/a>\n        <\/div>\n                <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"featured_media":1263,"template":"","meta":{"_acf_changed":false},"blog_category":[10],"class_list":["post-1260","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-security"],"acf":[],"_links":{"self":[{"href":"https:\/\/fresh-dev.nl\/en\/wp-json\/wp\/v2\/blog\/1260","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fresh-dev.nl\/en\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/fresh-dev.nl\/en\/wp-json\/wp\/v2\/types\/blog"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fresh-dev.nl\/en\/wp-json\/wp\/v2\/media\/1263"}],"wp:attachment":[{"href":"https:\/\/fresh-dev.nl\/en\/wp-json\/wp\/v2\/media?parent=1260"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/fresh-dev.nl\/en\/wp-json\/wp\/v2\/blog_category?post=1260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}