How to ensure the visual editor doesn’t ruin my iframe?

    add_shortcode('custom_iframe_shortcode', 'build_iframe');
function build_iframe($atts) {
    $defaults = array(
        'source' => 'https://example.com/calc.php?tp=dif&cl=beleggen&h=1&wf=19370&country=NL',
        'script_source' => '//example.com/iframeResizeMe.min.js.gz'
    );
    $args = shortcode_atts($defaults, $atts);

    ob_start(); ?>
    <iframe onload="fa_iframeresize.do(this);" src="https://wordpress.stackexchange.com/questions/314518/<?php echo $args["source']; ?>" scrolling="no" width="100%" style="padding:0px;margin:0px;border-width:0px;" frameborder="0">
    </iframe>
    <script type="text/javascript" src="https://wordpress.stackexchange.com/questions/314518/<?php echo $args["script_source']; ?>"></script>
    <?php return ob_get_clean();
}

then call this like [build_iframe] or [build_iframe source="https://blah" script_source="https://blah/blah.js']

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)