お知らせ

公式サイトにあったwysiwygエディタでのonclickなどの属性を有効にする方法ですが、NCの仕様(TinyMCEの仕様)に逸脱するのですが、一応調べた結果、掲載します。

aタグにonclickを有効にするカスタマイズ方法としては

/app/Plugin/Wysiwygの

Veiw/Helper/WysiwygHelper.phpの138行目の

//$constants['extended_valid_elements'] = 'script[src|title|type]'; をコメントアウトし
$constants['extended_valid_elements'] = 'script[src|title|type],a[href|id|class|target|onclick]'; に変更

(「,a[href|id|class|target|onclick]」を追加)

でTinyMCEのconfigの設定を追加

次に設定し入力した内容を登録するというところでも設定しているように思えますが、特に変更しなくてもよいみたいですが、一応次の箇所も変更しています。

Model/Behavior/PurifiableBehavior.phpの

317行目

// '*[class|id|title|cite|background|style|align|dir|lang|language]',  をコメントアウトし
'*[class|id|title|cite|background|style|align|dir|lang|language|onclick]', に変更

(「|onclick」を追加)

また 520行目に

$def->info_global_attr['onclick'] = new HTMLPurifier_AttrDef_Text();  を追加

これでaタグでのonclick=""を記述できるようになります。

 

権限の設定でスクリプト編集を許可している権限では自由にスクリプトおよびその実行ができるコンテンツ編集ができてしまいます。ついてはクロスサイトスクリプティングなどが実行できるスクリプトの記述、またその実行ができてしまいます。権限設定で不特定多数が使用する権限には決してjavascriptの編集権限を許可しないようにしましょう。