2016-07-12 17 views
0

私はnicEditorを使用していますが、によってブロックされています。CSPによってブロックされています。CSPコードが正しく動作しています。あなたが本当に、おそらくされていない(evalを含むnicEditorを使用する必要がある場合コンテンツセキュリティポリシー(CSP)のブロック評価メソッド呼び出し

Error: call to eval() blocked by CSP  nicEdit.js:779:36 

マイCSPコード

scriptSrc: ["'self'", "'unsafe-inline'"] 

私はここにも、事前

+1

'eval()'は使わないでください。 –

答えて

2

https://developer.chrome.com/extensions/contentSecurityPolicy

感謝を読んでいます最初は良いアイデア)、次のディレクティブを追加することができます:'unsafe-eval'

私は実際には、実際にはですが、evalに依存しない別のエディタを使用することをお勧めします。ほとんどの場合、セキュリティ上のリスクがあります。

代替手段が必要な場合は、たとえばProseMirrorをご覧ください。

0

問題の行は(私のためにライン682)nicEditorPaneladdButton機能である:

var type = (button['type']) ? eval('(typeof('+button['type']+') == "undefined") ? null : '+button['type']+';') : nicEditorButton; 

はこれでそれを置き換えます。

var type = (button['type']) ? (typeof(button['type']) == "undefined") ? null : window[button['type']] : nicEditorButton; 

私はちょうど作り、この問題に遭遇しましたGoogle Chrome拡張機能。 Chrome拡張機能のローダーでは、CSPのアクセス許可で 'unsafe-eval'を使用できません。それにもかかわらず、上記のようにセキュリティ上の理由からは最善ではありません。コードを見てみると、eval()を使用して、Stringの名前に基づいてコンストラクタを呼び出すように見えます。

すべてのグローバル関数がwindowオブジェクトのプロパティであるため、私の変更では、単に文字列を評価するのではなく、文字列フォーム(button['type'])のコンストラクタの名前がウィンドウのプロパティとして呼び出されます。

関連する問題