問題の行は(私のためにライン682)nicEditorPanel
のaddButton
機能である:
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']
)のコンストラクタの名前がウィンドウのプロパティとして呼び出されます。
'eval()'は使わないでください。 –