Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Testweb

Применение библиотеки HTMLPurifier в IPB

Recommended Posts

Ранее задавался данным вопрос, но так ответа не получил. Сейчас применяю стандартную библиотеку, скаченную с http://htmlpurifier.org/.

 

Хотелось бы лишний раз не нагружать файлами, библиотеками и тд. А применить уже готовую сконфигурированную разработчиками ipb.

 

Необходимо проверить пользовательский html на наличие скриптов, вредоносного кода и тд. Прежде чем добавим его в базу, без сущьностей. В чистом виде html....

 

Соответсвено вопрос к вам, как это сделать применяя готовую сконфигурированную библию от ipb. Возможно ли это сделать и назначение ее немного иное?

Share this post


Link to post
Share on other sites

Вам же сказали использовать для этого classes_editor_composite. Он специально занимается обработкой текста этой библиотекой где происходит конфигурация htmlpurifier и предварительная обработка текста. Не надо заниматься херней.

Share this post


Link to post
Share on other sites

Такой вопрос

   $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/editor/composite.php', 'classes_editor_composite' );
   $editor = new $classToLoad();
   $editor->setLegacyMode( false );
   $editor->setIsHtml( false );
   $postContent = $editor->process('<tr date="sa"><td>ds</td></tr>');
   print_r($postContent);

 

Как в ответ получить код такого вида "<tr date="sa"><td>ds</td></tr>", отфильтрованный от вредоносного кода...? Как отключить проверку на наличие правильной структуры кода?

Share this post


Link to post
Share on other sites

Никак. Пользователи не имеют право использовать таблицы в сообщениях.

Share this post


Link to post
Share on other sites

Как разрешить использовать? Возможно?

Share this post


Link to post
Share on other sites

Мужики как разрешить использование таблиц?

Share this post


Link to post
Share on other sites

Подскажи как выставить разрешение на такие атрибуты как id, class или добавить какой нибудь свой. Блин все удаляет.

 

Не понимаю, как конфиги указываются если использовать ту модификацию что у ipb

 

В стандартной библии есть такая возможность как добавлять свой префикс в начала значения атрибута id, подскажи как проделать тоже самое использую библию от ipb

Share this post


Link to post
Share on other sites
Подскажи как выставить разрешение на такие атрибуты как id, class или добавить какой нибудь свой. Блин все удаляет.

В IPS Suite 4 классы можно просто добавить в базу:

$myClasses = array( 'myClass_1','myClass_2',...,'myClass_n' );
$settingClasses = \IPS\Settings::i()->editor_allowed_classes ? explode( ',', \IPS\Settings::i()->editor_allowed_classes ) : array();
$settingClasses = array_unique( array_merge( $settingClasses, $myClasses ) );

\IPS\Db::i()->update( 'core_sys_conf_settings', array( 'conf_value' => implode( ',', $settingClasses ) ), array( 'conf_key=?', 'editor_allowed_classes' ) );

Для разрешения элемента по другим атрибутам, включая id, уже нужно работать с яваскрипт:

editor.dataProcessor.htmlFilter.addRules(
{
   elements :
   {
       $ : function( element )
       {
           if ( element.attributes.id == 'myID' )
               return element;
       }
   }
});

Но это, опять же, для 4-ой версии sceditor. С IP.Board 3.x.x не разбирался, там хватало штатных возможностей парсера бб-кодов.

 

как разрешить использование таблиц?
https://community.invisionpower.com/files/file/3520-hsc-table-bbcode/
  • Upvote 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...