WordPress.org

Make WordPress Core

Ticket #49464: #49464_updated_regex_for_attribute_names.diff

File #49464_updated_regex_for_attribute_names.diff, 1007 bytes (added by codeforest, 4 months ago)

Patch for the above

  • wp-includes/kses.php

    diff --git wp-includes/kses.php wp-includes/kses.php
    index d84fb6f837..dbfebcbb00 100644
    function wp_kses_hair( $attr, $allowed_protocols ) { 
    12481248
    12491249                switch ( $mode ) {
    12501250                        case 0:
    1251                                 if ( preg_match( '/^([-a-zA-Z:]+)/', $attr, $match ) ) {
     1251                                if ( preg_match( '/^([_a-zA-Z][-_a-zA-Z0-9:.]*)/', $attr, $match ) ) {
    12521252                                        $attrname = $match[1];
    12531253                                        $working  = 1;
    12541254                                        $mode     = 1;
    1255                                         $attr     = preg_replace( '/^[-a-zA-Z:]+/', '', $attr );
     1255                                        $attr     = preg_replace( '/^[_a-zA-Z][-_a-zA-Z0-9:.]*/', '', $attr );
    12561256                                }
    12571257
    12581258                                break;
    function wp_kses_hair_parse( $attr ) { 
    14391439        // phpcs:disable Squiz.Strings.ConcatenationSpacing.PaddingFound -- don't remove regex indentation
    14401440        $regex =
    14411441        '(?:'
    1442         .     '[-a-zA-Z:]+'   // Attribute name.
     1442        .     '[_a-zA-Z][-_a-zA-Z0-9:.]*'   // Attribute name.
    14431443        . '|'
    14441444        .     '\[\[?[^\[\]]+\]\]?' // Shortcode in the name position implies unfiltered_html.
    14451445        . ')'