Запрет выполнения iframe

Тема в разделе "Другие языки", создана пользователем tonimar, 7 июл 2011.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. tonimar

    tonimar Постоялец

    Регистр.:
    2 апр 2008
    Сообщения:
    53
    Симпатии:
    1
    Есть cms, есть раздел видео куда вставляется код с сервисов youtube и тд, но также если вставить iframe код он тоже выполняется. Как закрыть выполнение или вставку iframe кода??
    Спасибо
     
  2. Darkmind

    Darkmind SNMP maniac

    Регистр.:
    31 май 2006
    Сообщения:
    184
    Симпатии:
    76
    Iframe не может "выполняться", это не скрипт, а HTML тэг. Я говорю, что это "дырка в странице", в которую подложен другой документ. Объяснение примитивное, но тем не менее.

    PHP:
    <iframe src="http://www.ya.ru/index.html" width="640" height="480" align="left"></iframe>
    Такой код на странице при ее открытии сделает "окошко", где будет "проглядывать" яндекс. И код не "выполняется", это браузер видеть тэг Iframe и просто загружает страницу из параметра SRC.

    Если кто-то злонамеренно суёт iframe в админке через визуальный редактор, есть два пути: оторвать ему руки или залезть в компонент админки и запретить добавлять тэг iframe. Т.е. проверять всё, что заслал юзер и вырезать неугодные куски.
     
  3. tonimar

    tonimar Постоялец

    Регистр.:
    2 апр 2008
    Сообщения:
    53
    Симпатии:
    1
    что такое фрейм я примерно понимаю)) просто не правильно сказал . Это просто делался клон модуля, и как вариант была мысль что все добавленные посты будут проходить модерацию, клонировалось вроде все нормально, но вот посты проходят без модерации, поэтому и спросил или можно обойти. Спасибо за ответ, понял что надо копать в сторону модерации постов:(
     
  4. Darkmind

    Darkmind SNMP maniac

    Регистр.:
    31 май 2006
    Сообщения:
    184
    Симпатии:
    76
    Не обязательно модерировать.
    Есть модуль и в нём есть форма, куда народ что-то пишет. У формы есть обработчик. Можно найти куда попадает содержимое того, что заслал юзер и вырезать из этого содержимого левые и опасные тэги.

    PHP:
    // Допустим, это то, что заслал юзер
    $content $_POST['message'];

    // Вырезаем всё, кроме кроме ютубовских тегов
    $content strip_tags$content'<object><param><embed>' );

    // Или удаляем предыдущую строку и режем только iframe
    $content preg_replace('%<iframe[^>]+/?>(?:</iframe>)?|</iframe>%i'''$content);

    // Хотя также я бы советовал резать <script> и прочую лабуду
     
    tonimar нравится это.
  5. Miraage

    Miraage Angular/Laravel

    Регистр.:
    3 июн 2008
    Сообщения:
    230
    Симпатии:
    51
    если есть возможность - написать компонент/модуль, в который передается ссылка на ютуб, а оттуда спарсить код :X
     
  6. tonimar

    tonimar Постоялец

    Регистр.:
    2 апр 2008
    Сообщения:
    53
    Симпатии:
    1
    нету , пока мозгов не хватит, но примерно понял решение . ;) спс
     
Статус темы:
Закрыта.