2

XSS を避けるために、入力をサニタイズしています。スタイルなどの特定の属性を許可する場合、サニタイズを許可することで xss が防止されるかどうかは不明であり、明確な答えを見つけることができませんでした。style(回答に示されている例は、サニタイズによって許可されておらず、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 に答える