| Из далека, чтобы было понятно.
Задача: Установить фильтр для данных передаваемых пользователем через визуальный редактор. Взял для этого скрипт: htmLawed - http://www.bioinformatics.org/phplabware/internal_utilities/htmLawed/, рекомендованный на сайте виз. редактора TinyMCE - http://www.tinymce.com/wiki.php/Security
Все бы ничего. Но эта гадость делает две глобальных переменных: $C и $S, которые также используются в наших скриптах.
Хотел их заменить. Открыл скирпт в Дримвивере, и по поиску все $C заменил на $htmLawed_C и $S сответственно. После этого, этот скрипт стал работать не корректно.
Ну, думаю, видимо сильно хитрый. Как-то надо обезопаситься на будущее, чтобы глобальные переменные не пересекались.
Взял оригинальный скрипт htmLawed и в начало скрипта вписал такую строку:
if(isset($GLOBALS['C']) || isset($GLOBALS['S'])) exit('Конфликт переменных htmLawed');
Чтобы в будущем, не использовать переменные $C и $S там, где планируется использовать этот фильтр.
Так вот, после того, как я добавил эту простую строчку в начало оригинального скрипта, этот сприт тоже перестал корректно работать.
Покавырявшить немного, выяснил, что если скрипт просто открыть в редакторе, и снова схоранить изменяется даже размер файла и скрипт перестает корректно работать.
Оригинальный размер: 48 184 байт,
Рарзмер просто после открытия и сохранения, не добавляя ни одного символа: 48 893 байт.
Думаю, что дело в кодировке. Как вычислить, в какой кодировке написан скрипт, чтобы можно было его безопасно подправить? | |