2

为了避免 XSS,我正在清理输入。如果我允许某些属性(例如样式),我不确定并且无法找到明确的答案,如果允许stylein sanitize 将阻止 xss 与否。(答案中给出的示例是 sanitize 不允许的,也不会导致 XSS)

例如,如果用户选择从左到右的文本方向或从右到左的文本方向按钮,输出将是

<span style="direction:ltr"> user text </span>

我想避免这种情况并以某种方式使它像这样

<span class="LTR"> user text </span>

之后我会在不同的 CSS 中更改 LTR 类。

我尝试更改tinymce.yml,但我能做的最好的就是打破表格而不是让它工作。

有人可以给我一个如何做到这一点的例子,这样我就可以为所有格式和样式做到这一点?(或者更好地使用nokogiri或类似地解析它并自己更改它?)

4

1 回答 1

1

我会做类似以下的事情

var editor = tinymce.get('your_editor_id');
$(ed.getBody()).find('[style=direction:ltr]').attr('style','').addClass('LTR');

您可以将 tinymce设置配置参数与要执行此操作的事件一起使用:

tinyMCE.init({
   ...
   setup : function(ed) {
      ed.onKeyUp.add(function(ed, evt) {
          $(ed.getBody()).find('[style=direction:ltr]').attr('style','').addClass('LTR');
      });
   }
});
于 2012-12-17T08:48:36.783 回答