Module: Sanitizer::WhiteList

Defined in:
lib/sanitizer/whitelist.rb

Constant Summary collapse

ATTR_VAL_IS_URI =

ACCEPTABLE_ELEMENTS = %w[a abbr acronym address area b big blockquote br

button caption center cite code col colgroup dd del dfn dir div dl dt
em fieldset font form h1 h2 h3 h4 h5 h6 hr i img input ins kbd label
legend li map menu ol optgroup option p pre q s samp select small span
strike strong sub sup table tbody td textarea tfoot th thead tr tt u
ul var]

MATHML_ELEMENTS = %w[maction math merror mfrac mi mmultiscripts mn mo

mover mpadded mphantom mprescripts mroot mrow mspace msqrt mstyle msub
msubsup msup mtable mtd mtext mtr munder munderover none]

SVG_ELEMENTS = %w[a animate animateColor animateMotion animateTransform

circle defs desc ellipse font-face font-face-name font-face-src g
glyph hkern image linearGradient line marker metadata missing-glyph
mpath path polygon polyline radialGradient rect set stop svg switch
text title tspan use]

ACCEPTABLE_ATTRIBUTES = %w[abbr accept accept-charset accesskey action

align alt axis border cellpadding cellspacing char charoff charset
checked cite class clear cols colspan color compact coords datetime
dir disabled enctype for frame headers height href hreflang hspace id
ismap label lang longdesc maxlength media method multiple name nohref
noshade nowrap prompt readonly rel rev rows rowspan rules scope
selected shape size span src start style summary tabindex target title
type usemap valign value vspace width xml:lang]

MATHML_ATTRIBUTES = %w[actiontype align columnalign columnalign

columnalign columnlines columnspacing columnspan depth display
displaystyle equalcolumns equalrows fence fontstyle fontweight frame
height linethickness lspace mathbackground mathcolor mathvariant
mathvariant maxsize minsize other rowalign rowalign rowalign rowlines
rowspacing rowspan rspace scriptlevel selection separator stretchy
width width xlink:href xlink:show xlink:type xmlns xmlns:xlink]

SVG_ATTRIBUTES = %w[accent-height accumulate additive alphabetic

arabic-form ascent attributeName attributeType baseProfile bbox begin
by calcMode cap-height class color color-rendering content cx cy d dx
dy descent display dur end fill fill-rule font-family font-size
font-stretch font-style font-variant font-weight from fx fy g1 g2
glyph-name gradientUnits hanging height horiz-adv-x horiz-origin-x id
ideographic k keyPoints keySplines keyTimes lang marker-end
marker-mid marker-start markerHeight markerUnits markerWidth
mathematical max min name offset opacity orient origin
overline-position overline-thickness panose-1 path pathLength points
preserveAspectRatio r refX refY repeatCount repeatDur
requiredExtensions requiredFeatures restart rotate rx ry slope stemh
stemv stop-color stop-opacity strikethrough-position
strikethrough-thickness stroke stroke-dasharray stroke-dashoffset
stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity
stroke-width systemLanguage target text-anchor to transform type u1
u2 underline-position underline-thickness unicode unicode-range
units-per-em values version viewBox visibility width widths x
x-height x1 x2 xlink:actuate xlink:arcrole xlink:href xlink:role
xlink:show xlink:title xlink:type xml:base xml:lang xml:space xmlns
xmlns:xlink y y1 y2 zoomAndPan]
%w[href src cite action longdesc xlink:href xml:base]
ACCEPTABLE_CSS_PROPERTIES =
%w[azimuth background-color
border-bottom-color border-collapse border-color border-left-color
border-right-color border-top-color clear color cursor direction
display elevation float font font-family font-size font-style
font-variant font-weight height letter-spacing line-height overflow
pause pause-after pause-before pitch pitch-range richness speak
speak-header speak-numeral speak-punctuation speech-rate stress
text-align text-decoration text-indent unicode-bidi vertical-align
voice-family volume white-space width]
ACCEPTABLE_CSS_KEYWORDS =
%w[auto aqua black block blue bold both bottom
brown center collapse dashed dotted fuchsia gray green !important
italic left lime maroon medium none navy normal nowrap olive pointer
purple red right solid silver teal top transparent underline white
yellow]
ACCEPTABLE_SVG_PROPERTIES =
%w[fill fill-opacity fill-rule stroke
stroke-width stroke-linecap stroke-linejoin stroke-opacity]
ACCEPTABLE_PROTOCOLS =
%w[ed2k ftp http https irc mailto news gopher nntp
telnet webcal xmpp callto feed urn aim rsync tag ssh sftp rtsp afs]
ALLOWED_ELEMENTS =

subclasses may define their own versions of these constants ALLOWED_ELEMENTS = ACCEPTABLE_ELEMENTS + MATHML_ELEMENTS + SVG_ELEMENTS ALLOWED_ATTRIBUTES = ACCEPTABLE_ATTRIBUTES + MATHML_ATTRIBUTES + SVG_ATTRIBUTES

['a', 'abbr', 'acronym', 'address', 'area', 'b',
  'big', 'blockquote', 'br', 'caption', 'center', 'cite',
  'code', 'col', 'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt',
  'em', 'embed', 'font', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i',
  'img', 'ins', 'kbd', 'li', 'map', 'menu', 'object', 'ol', 'p', 'param', 'pre', 'q',
  's', 'samp', 'small', 'span', 'strike', 'strong', 'sub', 'sup',
  'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr', 'tt', 'u',
  'ul', 'var'
]
ALLOWED_ATTRIBUTES =
['abbr', 'accept', 'accept-charset', 'accesskey',
  'align', 'alt', 'axis', 'border', 'cellpadding',
  'cellspacing', 'char', 'charoff', 'charset', 'checked', 'cite', 'clear',
  'cols', 'colspan', 'color', 'compact', 'coords', 'data', 'datetime', 'dir',
  'disabled', 'enctype', 'flashvars', 'for', 'frame', 'headers', 'href', 'hreflang',
  'hspace', 'ismap', 'label', 'lang', 'longdesc', 'maxlength', 'media',
  'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'prompt',
  'readonly', 'rel', 'rev', 'rows', 'rowspan', 'rules', 'scope', 'selected',
  'shape', 'span', 'src', 'start', 'summary', 'tabindex', 'target',
  'title', 'type', 'usemap', 'valign', 'value', 'vspace', 'xml:lang', 'width'
]
ALLOWED_CSS_PROPERTIES =
ACCEPTABLE_CSS_PROPERTIES
ALLOWED_CSS_KEYWORDS =
ACCEPTABLE_CSS_KEYWORDS
ALLOWED_SVG_PROPERTIES =
ACCEPTABLE_SVG_PROPERTIES
ALLOWED_PROTOCOLS =
ACCEPTABLE_PROTOCOLS
VOID_ELEMENTS =
%w[
  base
  link
  meta
  hr
  br
  img
  embed
  param
  area
  col
  input
]