2017-01-30 8 views
1

Я использую ckeditor 4.5, и мы недавно добавили OWASP Html Sanitizer в конец экрана для экрана для атак XSS. Одной из особенностей этого инструмента является фильтр того, какие протоколы разрешены для элементов href.Есть ли способ фильтрации протоколов в href

Мы обнаружили, что, хотя наш список протоколов совпадает с тем, который содержит ссылка, люди продолжают вставлять содержимое в ckeditor с разными протоколами, которые мы не поддерживаем, например. которые мы хотели бы отфильтровать изнутри ckeditor, чтобы мы не отметили наивную вырезку & в качестве атаки xss.

Кажется, что AdvancedContentFilter может указывать отдельные классы и стили, но не протоколы href или более общие значения атрибутов.

Можно ли это сделать изнутри CKEDITOR?

Edit: Подойдя ближе, я думаю, я добавил:

config.disallowedContent = { 
    a: { 
     match: function(element) { 
      var allowedProtcols = /^(?:http|https|mailto|tel|ftp|news):/; 
      return !allowedProtcols.test(element.attributes.href); 
     } 
    } 
}; 

К сожалению, это, кажется, сделать кнопку ссылку исчезнет из строки меню.

ответ

0

Решение представляет собой комбинацию функции соответствия и специального cke-теста обсадной колонны.

config.allowedContent = { 
    'a': { 
     match: function(element) { 
      if (element.attributes.href === 'cke-test') { return true; } 
      var allowedProtcols = /^(?:http|https|mailto|tel|ftp|news):/; 
      return allowedProtcols.test(element.attributes.href); 
     }, 
     attributes: '!href' 
    }, 
... 
}; 

 Смежные вопросы

  • Нет связанных вопросов^_^