355 lines
9.5 KiB
PHP
355 lines
9.5 KiB
PHP
<?php
|
|
|
|
namespace Nextend\Security;
|
|
|
|
class Kses {
|
|
|
|
public static $allowedposttags = array(
|
|
'address' => array(),
|
|
'a' => array(
|
|
'href' => true,
|
|
'rel' => true,
|
|
'rev' => true,
|
|
'name' => true,
|
|
'target' => true,
|
|
'download' => array(
|
|
'valueless' => 'y',
|
|
),
|
|
),
|
|
'abbr' => array(),
|
|
'acronym' => array(),
|
|
'area' => array(
|
|
'alt' => true,
|
|
'coords' => true,
|
|
'href' => true,
|
|
'nohref' => true,
|
|
'shape' => true,
|
|
'target' => true,
|
|
),
|
|
'article' => array(
|
|
'align' => true,
|
|
),
|
|
'aside' => array(
|
|
'align' => true,
|
|
),
|
|
'audio' => array(
|
|
'autoplay' => true,
|
|
'controls' => true,
|
|
'loop' => true,
|
|
'muted' => true,
|
|
'preload' => true,
|
|
'src' => true,
|
|
),
|
|
'b' => array(),
|
|
'bdo' => array(),
|
|
'big' => array(),
|
|
'blockquote' => array(
|
|
'cite' => true,
|
|
),
|
|
'br' => array(),
|
|
'button' => array(
|
|
'disabled' => true,
|
|
'name' => true,
|
|
'type' => true,
|
|
'value' => true,
|
|
),
|
|
'caption' => array(
|
|
'align' => true,
|
|
),
|
|
'cite' => array(),
|
|
'code' => array(),
|
|
'col' => array(
|
|
'align' => true,
|
|
'char' => true,
|
|
'charoff' => true,
|
|
'span' => true,
|
|
'valign' => true,
|
|
'width' => true,
|
|
),
|
|
'colgroup' => array(
|
|
'align' => true,
|
|
'char' => true,
|
|
'charoff' => true,
|
|
'span' => true,
|
|
'valign' => true,
|
|
'width' => true,
|
|
),
|
|
'del' => array(
|
|
'datetime' => true,
|
|
),
|
|
'dd' => array(),
|
|
'dfn' => array(),
|
|
'details' => array(
|
|
'align' => true,
|
|
'open' => true,
|
|
),
|
|
'div' => array(
|
|
'align' => true,
|
|
),
|
|
'dl' => array(),
|
|
'dt' => array(),
|
|
'em' => array(),
|
|
'fieldset' => array(),
|
|
'figure' => array(
|
|
'align' => true,
|
|
),
|
|
'figcaption' => array(
|
|
'align' => true,
|
|
),
|
|
'font' => array(
|
|
'color' => true,
|
|
'face' => true,
|
|
'size' => true,
|
|
),
|
|
'footer' => array(
|
|
'align' => true,
|
|
),
|
|
'h1' => array(
|
|
'align' => true,
|
|
),
|
|
'h2' => array(
|
|
'align' => true,
|
|
),
|
|
'h3' => array(
|
|
'align' => true,
|
|
),
|
|
'h4' => array(
|
|
'align' => true,
|
|
),
|
|
'h5' => array(
|
|
'align' => true,
|
|
),
|
|
'h6' => array(
|
|
'align' => true,
|
|
),
|
|
'header' => array(
|
|
'align' => true,
|
|
),
|
|
'hgroup' => array(
|
|
'align' => true,
|
|
),
|
|
'hr' => array(
|
|
'align' => true,
|
|
'noshade' => true,
|
|
'size' => true,
|
|
'width' => true,
|
|
),
|
|
'i' => array(),
|
|
'img' => array(
|
|
'alt' => true,
|
|
'align' => true,
|
|
'border' => true,
|
|
'height' => true,
|
|
'hspace' => true,
|
|
'loading' => true,
|
|
'longdesc' => true,
|
|
'vspace' => true,
|
|
'src' => true,
|
|
'usemap' => true,
|
|
'width' => true,
|
|
),
|
|
'ins' => array(
|
|
'datetime' => true,
|
|
'cite' => true,
|
|
),
|
|
'kbd' => array(),
|
|
'label' => array(
|
|
'for' => true,
|
|
),
|
|
'legend' => array(
|
|
'align' => true,
|
|
),
|
|
'li' => array(
|
|
'align' => true,
|
|
'value' => true,
|
|
),
|
|
'main' => array(
|
|
'align' => true,
|
|
),
|
|
'map' => array(
|
|
'name' => true,
|
|
),
|
|
'mark' => array(),
|
|
'menu' => array(
|
|
'type' => true,
|
|
),
|
|
'nav' => array(
|
|
'align' => true,
|
|
),
|
|
'object' => array(
|
|
'data' => array(
|
|
'required' => true,
|
|
'value_callback' => '_wp_kses_allow_pdf_objects',
|
|
),
|
|
'type' => array(
|
|
'required' => true,
|
|
'values' => array('application/pdf'),
|
|
),
|
|
),
|
|
'p' => array(
|
|
'align' => true,
|
|
),
|
|
'pre' => array(
|
|
'width' => true,
|
|
),
|
|
'q' => array(
|
|
'cite' => true,
|
|
),
|
|
'rb' => array(),
|
|
'rp' => array(),
|
|
'rt' => array(),
|
|
'rtc' => array(),
|
|
'ruby' => array(),
|
|
's' => array(),
|
|
'samp' => array(),
|
|
'span' => array(
|
|
'align' => true,
|
|
),
|
|
'section' => array(
|
|
'align' => true,
|
|
),
|
|
'small' => array(),
|
|
'strike' => array(),
|
|
'strong' => array(),
|
|
'sub' => array(),
|
|
'summary' => array(
|
|
'align' => true,
|
|
),
|
|
'sup' => array(),
|
|
'table' => array(
|
|
'align' => true,
|
|
'bgcolor' => true,
|
|
'border' => true,
|
|
'cellpadding' => true,
|
|
'cellspacing' => true,
|
|
'rules' => true,
|
|
'summary' => true,
|
|
'width' => true,
|
|
),
|
|
'tbody' => array(
|
|
'align' => true,
|
|
'char' => true,
|
|
'charoff' => true,
|
|
'valign' => true,
|
|
),
|
|
'td' => array(
|
|
'abbr' => true,
|
|
'align' => true,
|
|
'axis' => true,
|
|
'bgcolor' => true,
|
|
'char' => true,
|
|
'charoff' => true,
|
|
'colspan' => true,
|
|
'headers' => true,
|
|
'height' => true,
|
|
'nowrap' => true,
|
|
'rowspan' => true,
|
|
'scope' => true,
|
|
'valign' => true,
|
|
'width' => true,
|
|
),
|
|
'textarea' => array(
|
|
'cols' => true,
|
|
'rows' => true,
|
|
'disabled' => true,
|
|
'name' => true,
|
|
'readonly' => true,
|
|
),
|
|
'tfoot' => array(
|
|
'align' => true,
|
|
'char' => true,
|
|
'charoff' => true,
|
|
'valign' => true,
|
|
),
|
|
'th' => array(
|
|
'abbr' => true,
|
|
'align' => true,
|
|
'axis' => true,
|
|
'bgcolor' => true,
|
|
'char' => true,
|
|
'charoff' => true,
|
|
'colspan' => true,
|
|
'headers' => true,
|
|
'height' => true,
|
|
'nowrap' => true,
|
|
'rowspan' => true,
|
|
'scope' => true,
|
|
'valign' => true,
|
|
'width' => true,
|
|
),
|
|
'thead' => array(
|
|
'align' => true,
|
|
'char' => true,
|
|
'charoff' => true,
|
|
'valign' => true,
|
|
),
|
|
'title' => array(),
|
|
'tr' => array(
|
|
'align' => true,
|
|
'bgcolor' => true,
|
|
'char' => true,
|
|
'charoff' => true,
|
|
'valign' => true,
|
|
),
|
|
'track' => array(
|
|
'default' => true,
|
|
'kind' => true,
|
|
'label' => true,
|
|
'src' => true,
|
|
'srclang' => true,
|
|
),
|
|
'tt' => array(),
|
|
'u' => array(),
|
|
'ul' => array(
|
|
'type' => true,
|
|
),
|
|
'ol' => array(
|
|
'start' => true,
|
|
'type' => true,
|
|
'reversed' => true,
|
|
),
|
|
'var' => array(),
|
|
'video' => array(
|
|
'autoplay' => true,
|
|
'controls' => true,
|
|
'height' => true,
|
|
'loop' => true,
|
|
'muted' => true,
|
|
'playsinline' => true,
|
|
'poster' => true,
|
|
'preload' => true,
|
|
'src' => true,
|
|
'width' => true,
|
|
),
|
|
);
|
|
|
|
public static $allowedtags = array(
|
|
'a' => array(
|
|
'href' => true,
|
|
'title' => true,
|
|
),
|
|
'abbr' => array(
|
|
'title' => true,
|
|
),
|
|
'acronym' => array(
|
|
'title' => true,
|
|
),
|
|
'b' => array(),
|
|
'blockquote' => array(
|
|
'cite' => true,
|
|
),
|
|
'cite' => array(),
|
|
'code' => array(),
|
|
'del' => array(
|
|
'datetime' => true,
|
|
),
|
|
'em' => array(),
|
|
'i' => array(),
|
|
'q' => array(
|
|
'cite' => true,
|
|
),
|
|
's' => array(),
|
|
'strike' => array(),
|
|
'strong' => array(),
|
|
);
|
|
} |