Ticket #5917: kses_bad_protocol.diff
| File kses_bad_protocol.diff, 3.8 KB (added by takayukister, 5 years ago) |
|---|
-
opt/lampp/htdocs/wp-trunk/wp-includes/kses.php
45 45 'address' => array(), 46 46 'a' => array( 47 47 'class' => array (), 48 'href' => array (), 48 'href' => array ( 49 'type' => 'uri'), 49 50 'id' => array (), 50 51 'title' => array (), 51 52 'rel' => array (), … … 61 62 'big' => array(), 62 63 'blockquote' => array( 63 64 'id' => array (), 64 'cite' => array (), 65 'cite' => array ( 66 'type' => 'uri'), 65 67 'class' => array(), 66 68 'lang' => array(), 67 69 'xml:lang' => array()), … … 110 112 'face' => array (), 111 113 'size' => array ()), 112 114 'form' => array( 113 'action' => array (), 115 'action' => array ( 116 'type' => 'uri'), 114 117 'accept' => array (), 115 118 'accept-charset' => array (), 116 119 'enctype' => array (), … … 149 152 'class' => array (), 150 153 'height' => array (), 151 154 'hspace' => array (), 152 'longdesc' => array (), 155 'longdesc' => array ( 156 'type' => 'uri'), 153 157 'vspace' => array (), 154 'src' => array (), 158 'src' => array ( 159 'type' => 'uri'), 155 160 'style' => array (), 156 161 'width' => array ()), 157 162 'ins' => array( 158 163 'datetime' => array (), 159 'cite' => array ()), 164 'cite' => array ( 165 'type' => 'uri')), 160 166 'kbd' => array(), 161 167 'label' => array( 162 168 'for' => array ()), … … 176 182 'style' => array(), 177 183 'width' => array ()), 178 184 'q' => array( 179 'cite' => array ()), 185 'cite' => array ( 186 'type' => 'uri')), 180 187 's' => array(), 181 188 'span' => array ( 182 189 'class' => array (), … … 282 289 */ 283 290 $allowedtags = array( 284 291 'a' => array( 285 'href' => array (), 292 'href' => array ( 293 'type' => 'uri'), 286 294 'title' => array ()), 287 295 'abbr' => array( 288 296 'title' => array ()), … … 290 298 'title' => array ()), 291 299 'b' => array(), 292 300 'blockquote' => array( 293 'cite' => array ()), 301 'cite' => array ( 302 'type' => 'uri')), 294 303 // 'br' => array(), 295 304 'cite' => array (), 296 305 'code' => array(), … … 305 314 // 'ol' => array(), 306 315 // 'p' => array(), 307 316 'q' => array( 308 'cite' => array ()), 317 'cite' => array ( 318 'type' => 'uri')), 309 319 'strike' => array(), 310 320 'strong' => array(), 311 321 // 'sub' => array(), … … 498 508 # there are no checks 499 509 500 510 else { 511 # sanitize string from bad protocols 512 if ('y' != $arreach['vless'] && 'uri' == $current['type']) { 513 $arreach['value'] = wp_kses_bad_protocol($arreach['value'], $allowed_protocols); 514 $arreach['whole'] = sprintf('%s="%s"', $arreach['name'], $arreach['value']); 515 } 516 501 517 # there are some checks 502 518 $ok = true; 503 519 foreach ($current as $currkey => $currval) … … 580 596 if (preg_match('/^"([^"]*)"(\s+|$)/', $attr, $match)) 581 597 # "value" 582 598 { 583 $thisval = wp_kses_bad_protocol($match[1], $allowed_protocols);599 $thisval = $match[1]; 584 600 585 601 $attrarr[] = array ('name' => $attrname, 'value' => $thisval, 'whole' => "$attrname=\"$thisval\"", 'vless' => 'n'); 586 602 $working = 1; … … 592 608 if (preg_match("/^'([^']*)'(\s+|$)/", $attr, $match)) 593 609 # 'value' 594 610 { 595 $thisval = wp_kses_bad_protocol($match[1], $allowed_protocols);611 $thisval = $match[1]; 596 612 597 613 $attrarr[] = array ('name' => $attrname, 'value' => $thisval, 'whole' => "$attrname='$thisval'", 'vless' => 'n'); 598 614 $working = 1; … … 604 620 if (preg_match("%^([^\s\"']+)(\s+|$)%", $attr, $match)) 605 621 # value 606 622 { 607 $thisval = wp_kses_bad_protocol($match[1], $allowed_protocols);623 $thisval = $match[1]; 608 624 609 625 $attrarr[] = array ('name' => $attrname, 'value' => $thisval, 'whole' => "$attrname=\"$thisval\"", 'vless' => 'n'); 610 626 # We add quotes to conform to W3C's HTML spec.
