Перейти к содержанию

Санитайзер HTML

Работа с санитайзером HTML

Санитайзер позволяет определить потенциально вредоносный код HTML. При проверке кода используется принцип позитивной модели безопасности: "что не разрешено – то запрещено".

Допустимые действия в HTML описаны ниже.

Допустимые элементы

  • article, aside
  • figure
  • section
  • summary
  • Заголовки: h1, h2, h3, h4, h5, h6
  • hgroup
  • br, div, hr, p, span, wbr
  • Строковые элементы для работы с текстом: abbr, acronym, cite, code, dfn, em, figcaption, mark, s, samp, strong, sub, sup, var
  • Блочные и строковые элементы, не влияющие на семантику документа, но определяющие стиль: b, i, pre, small, strike, tt, u
  • rp, rt, ruby

Помимо тегов выше допустимы списки, таблицы и изображения

Работа с URL

  • Допустимы стандартные схемы http, https, mailto;
  • Допустимы относительные ссылки;
  • При описании ссылок атрибут rel="nofollow" не требуется;

Работа с атрибутами

Для всех элементов допустимы атрибуты: - dir (допустимы значения, удовлетворяющие регулярному выражению (?i)^(rtl|ltr)$) - id (допустимы значения, удовлетворяющие регулярному выражению [a-zA-Z0-9\:\-_\.]+) - title (значения, удовлетворяющие ^[\p{L}\p{N}\s\-_',\[\]!\./\\\(\)]*$) - align - style - color - controls - height - id - src - target - title - type - width

Для элемента details доступен атрибут open со значениями, удовлетворяющими регулярному выражению (?i)^(|open)$.

Для элемента blockquote доступен атрибут cite.

Для элемента map доступен атрибут name со значениями, удовлетворяющими регулярному выражению ^([\p{L}\p{N}_-]+)$.

Для элемента area: - Доступен атрибут alt со значениями, удовлетворяющими регулярному выражению ^[\p{L}\p{N}\s\-_',\[\]!\./\\\(\)]*$; - Доступен атрибут coords со значениями, удовлетворяющими регулярному выражению ^([0-9]+,)+[0-9]+$; - Доступен атрибут rel; - Доступен атрибут shape со значениями, удовлетворяющими регулярному выражению (?i)^(default|circle|rect|poly)$;

Для элемента img доступен атрибут usemap со значениями, удовлетворяющими регулярному выражению (?i)^#[\p{L}\p{N}_-]+$.

Для элементов bdi и bdo доступен атрибут dir со значениями удовлетворяющими регулярному выражению (?i)^(rtl|ltr)$.

Для элементов del, ins: - Доступен атрибут cite со значениями удовлетворяющими регулярному выражению ^[\p{L}\p{N}\s\-_',\[\]!\./\\\(\)]*$; - Доступен атрибут datetime со значениями, удовлетворяющими стандарту ISO8601 (^[0-9]{4}(-[0-9]{2}(-[0-9]{2}([ T][0-9]{2}(:[0-9]{2}){1,2}(.[0-9]{1,6}) + ?Z?([\+-][0-9]{2}:[0-9]{2})?)?)?)?$);

Для элемента meter доступны атрибуты value, min, max, low, high, optimum со значениями, удовлетворяющими регулярному выражению ^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$.

Для элемента progress доступны атрибуты value, max со значениями, удовлетворяющими регулярному выражению ^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$.