akaluth
Проверенные
- Сообщения
- 8
- Реакции
- 6
- Баллы
- 5,500
Весьма весело и познавательно читать куски своей статьи на неизвестном мне ранее форуме (особенно, учитывая отсутствия каких-либо отсылок к первоисточнику).
Собственно, ниже представлена моя оригинальная статья на эту тему с описанием как принципов так и причин такого поведения:
1. Методы обхода ограничений на определенные теги/количество этих тегов:
Вставка картинок:
Способ 1
Способ 2
Способ 3
Первые два способа чуть сложнее, но с ними можно добится весьма интересных результатов.
2. Как же так получилось?
Вся суть в порядке обработки тегов парсером xenforo. Этот порядок примерно такой:
Метод 1/2 основан на том, что при помощи тегов media и font я ломаю тег img и при подсчете парсер его игнорирует. А так как он не был подсчитан на первом шаге, он спокойно рендерится на четвертом.
Теперь о методе 3:
Его суть в том, что при удалении тега code на третьем шаге, его контент остается неизменным. Решением проблемы здесь будет являться исключение этого тега из списка запрещенных, каких-то проблем для подписи он не вызывает.
3. Хорошо, но как же это пофиксить?
Я не очень силен в PHP, поэтому опишу текстом, плюс приложу фикс на jQuery:
Уверен, что на этом форуме есть люди, которые могут связаться с разработчиком движка и донести до него эту проблему. Текущий статус фикса лично мне неизвестен (статья, напомню, написана 29 июля), но гарантированно работает на движках до 1.2.0 включительно.
Если будет интересно, могу рассказать еще о нескольких интересных багах, найденных мною :-)
UPD: Судя по тому, что оно всё еще работает на официальном форуме ксенфоро, баг до сих пор актуален
Собственно, ниже представлена моя оригинальная статья на эту тему с описанием как принципов так и причин такого поведения:
1. Методы обхода ограничений на определенные теги/количество этих тегов:
Вставка картинок:
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
Способ 1
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
Способ 2
Код:
[img]ссылка на картинку[/img]
Первые два способа чуть сложнее, но с ними можно добится весьма интересных результатов.
2. Как же так получилось?
Вся суть в порядке обработки тегов парсером xenforo. Этот порядок примерно такой:
- Подсчет тегов img, url, email
- Сверка с пермишеннами количества тегов img, url и email, в случае ошибки - дальнейшие шаги не производятся
- Удаление запрещенных тегов (тегов, которые не должны быть отрендерены, например размер шрифта)
- Рендер BB в HTML
Метод 1/2 основан на том, что при помощи тегов media и font я ломаю тег img и при подсчете парсер его игнорирует. А так как он не был подсчитан на первом шаге, он спокойно рендерится на четвертом.
Теперь о методе 3:
Его суть в том, что при удалении тега code на третьем шаге, его контент остается неизменным. Решением проблемы здесь будет являться исключение этого тега из списка запрещенных, каких-то проблем для подписи он не вызывает.
3. Хорошо, но как же это пофиксить?
Я не очень силен в PHP, поэтому опишу текстом, плюс приложу фикс на jQuery:
- Метод номер раз: обеспечить подсчет тегов img, url и email непосредственно во время их рендеринга
- Через CSS ограничить вывод картинок в подписях, но код может быть монструозен ввиду того, что bb-коды могут быть вложенными
- Через jQuery просто удалять все картинки и iframe из подписи, вот мой фикс для этого:
У Вас недостаточно прав для просмотра ссылок. Вход или Регистрация
Уверен, что на этом форуме есть люди, которые могут связаться с разработчиком движка и донести до него эту проблему. Текущий статус фикса лично мне неизвестен (статья, напомню, написана 29 июля), но гарантированно работает на движках до 1.2.0 включительно.
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
(он же мой блог)Если будет интересно, могу рассказать еще о нескольких интересных багах, найденных мною :-)
UPD: Судя по тому, что оно всё еще работает на официальном форуме ксенфоро, баг до сих пор актуален
Последнее редактирование: