Dragon Arrow written by Tatsuya Nakaji, all rights reserved animated-dragon-image-0164

froala scriptが取り除かれてしまう問題を解決

Oct 08, 2019

froala scriptが取り除かれてしまう問題を解決


デフォルト仕様


froalaエディターでは<style>,  <script>タグはアップロードしても取り除かれるようになっています。

これは、XSS attack(クロスサイトスクリプティング攻撃) を防ぐ目的のようです。

なので、この設定を変えるのは非推奨のようです。

ですが、例えば、Gistを埋め込んだり、特定のページのみgoogle analyticsのトラッキングコードを埋め込む時など、<script>を使いたいときはあると思います。

以下、この問題の解決手段を記します。


解決策


方法1. デフォルト設定を変えて、<script>を取り除かないようにする

htmlRemoveTags

Type:Array
Default:['script', 'style']


CODE EXAMPLE

new FroalaEditor('.selector', {
  htmlRemoveTags: ['style', 'base'] # scriptを外す
});


これで、簡単にscriptが取り除かれなくなります。

***この方法は、公式の開発者グループの非推奨です


...一応、ワードプレスやはてなブログは初めから<script>タグを取り除かない仕様なので、特別危険なことをしているというわけではないです。(ただ、方法2でやったほうが、セキュリティに侵入された時のリスクが小さい)


方法2. カスタムボタンを作る


カスタムボタン

scriptのコードを要求するポップアップのカスタムボタンを作成する

この方法により、XSSインジェクションから安全になり、<script>を埋め込むのも楽になる。

***この方法は、公式の開発者グループの推奨です


最後に


臨時解決策で、解決策1、長期使用を考えて解決策2って感じですね。