Make WordPress Core

Changeset 41409 for branches/3.9


Ignore:
Timestamp:
09/19/2017 10:15:37 AM (9 years ago)
Author:
ocean90
Message:

Editor: Prevent adding javascript: and data: URLs through the inline link dialog.

Merge of [41393] to the 3.9 branch.

Location:
branches/3.9
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/3.9

  • branches/3.9/src/wp-includes/js/wplink.js

    r27900 r41409  
    180180                        attrs = wpLink.getAttrs();
    181181
     182                        var parser = document.createElement( 'a' );
     183                        parser.href = attrs.href;
     184
     185                        if ( 'javascript:' === parser.protocol || 'data:' === parser.protocol ) { // jshint ignore:line
     186                                attrs.href = '';
     187                        }
     188
    182189                        // If there's no href, return.
    183190                        if ( ! attrs.href || attrs.href == 'http://' )
    … …  
    193200
    194201                        if ( attrs.target ) {
    195                                 html += ' target="' + attrs.target + '"';
     202                                html += ' rel="noopener" target="' + attrs.target + '"';
    196203                        }
    197204
    … …  
    244251
    245252                        link = editor.dom.getParent( editor.selection.getNode(), 'a[href]' );
     253
     254                        var parser = document.createElement( 'a' );
     255                        parser.href = attrs.href;
     256
     257                        if ( 'javascript:' === parser.protocol || 'data:' === parser.protocol ) { // jshint ignore:line
     258                                attrs.href = '';
     259                        }
    246260
    247261                        // If the values are empty, unlink and return
Note: See TracChangeset for help on using the changeset viewer.