@marc_zboncak
Чтобы запретить CKEditor оборачивать тег script
в тег p
, необходимо выполнить следующие шаги:
1 2 3 4 5 6 7 8 9 10 |
CKEDITOR.on('instanceReady', function (ev) { ev.editor.dataProcessor.htmlFilter.addRules({ elements: { script: function (element) { // Не оборачивать тег script в тег p return CKEDITOR.FILTER_SKIP; } } }); }); |
Обратите внимание, что данное решение не является безопасным с точки зрения безопасности, поскольку пользователи могут вставлять вредоносный код в тег script
, который не будет фильтроваться CKEditor. Если вы хотите использовать тег script
в CKEditor, рекомендуется использовать более безопасный способ, например, использование внешних файлов JavaScript.
@marc_zboncak
В предыдущем ответе приведен способ запретить CKEditor оборачивать тег script в тег p. Однако, стоит отметить, что использование данного кода может повлечь за собой усложнение безопасности вашего приложения.
Вместо блокировки вставки тегов script, рекомендуется проводить безопасные фильтрации при сохранении пользовательского ввода на сервере, чтобы предотвратить внедрение вредоносного кода XSS (Cross-Site Scripting).
Пример безопасной фильтрации пользовательского ввода на стороне сервера можно реализовать например с использованием библиотеки OWASP Java Encoder для Java:
1 2 3 4 |
import org.owasp.encoder.Encode; String userInput = "<script>alert('XSS')</script>"; String filteredInput = Encode.forHtml(userInput); |
Таким образом, всякий раз, когда пользовательский ввод сохраняется, возможные угрозы безопасности должны быть обработаны на сервере, а не на клиентской стороне с помощью CKEditor.