Разрешить пользователям вставлять скрипт

Тема в разделе "JavaScript", создана пользователем balemey, 3 янв 2015.

Модераторы: ZiX
  1. balemey

    balemey Постоялец

    Регистр.:
    1 мар 2013
    Сообщения:
    95
    Симпатии:
    8
    Многие блоговые сайты, а так же рекламные системы позволяют своим пользователям вставлять код рекламы (или заглушки). Обычно это <.script.> ... <./.script.>

    Но практически все CMS режут любое соответствие script вводимых дынных.

    Как дать пользователям возможность вводит код скрипта, чтобы потом впоследствии выводить этот код на страницу, но и с безопасностью не промахнуться? Как это делают другие? или может кто-то из вас
     
  2. Gregurco

    Gregurco Создатель

    Регистр.:
    8 дек 2014
    Сообщения:
    16
    Симпатии:
    1
    Мне кажется, это невозможно, разрешить вставлять свой js и при этом еще и с защитой быть. Вы же не сможете запретить к примеру, банально удалить какой-то блок со страницы, или тот же alert натывать, ну или те же xss.
    Почитайте:
    http://www.linux.org.ru/forum/web-development/10312939
     
  3. balemey

    balemey Постоялец

    Регистр.:
    1 мар 2013
    Сообщения:
    95
    Симпатии:
    8
    А если учесть, что конечный код будет выводиться на сайте того же пользователя, а не на сайте который защищаем?
    т.е. фактически мы только записываем js в бд, а выводится он будет только на сайте того кто этот код ввел.
     
  4. Gregurco

    Gregurco Создатель

    Регистр.:
    8 дек 2014
    Сообщения:
    16
    Симпатии:
    1
    Тогда и париться особо не стоит. Ну украдет он свои куки, которые хранятся у него же в браузере, ну ничего страшного не будет :D Главное, быть уверенным, что другие, на это не попадутся.
     
  5. zaxap83

    zaxap83 Постоялец

    Регистр.:
    6 дек 2010
    Сообщения:
    87
    Симпатии:
    28
    Сделать свою форму, свой обработчик к ней, который будет заносить в базу и вставляй хоть тело скрипта, хоть линки на них, а при генерации страницы обрабатывать и выводить в DOM, только модерация лишней не будет в любом случае.
     
  6. startup2008

    startup2008 Создатель

    Регистр.:
    31 авг 2008
    Сообщения:
    34
    Симпатии:
    16
    Можно заранее определить доступные типы кода js, сделать спец тег, например, <code type='advert'> , на стороне сервера парсить этот код и заменять валидным и безопасным js.
     
  7. Gregurco

    Gregurco Создатель

    Регистр.:
    8 дек 2014
    Сообщения:
    16
    Симпатии:
    1
    А что делать с кодом который обфуксирован?
     
  8. startup2008

    startup2008 Создатель

    Регистр.:
    31 авг 2008
    Сообщения:
    34
    Симпатии:
    16
    мы же здесь не рассматриваем доверие автора к конкретным рекламным площадкам с их кодом, вопрос в ограничение вида js кода, который может вставить пользователь
     
  9. balemey

    balemey Постоялец

    Регистр.:
    1 мар 2013
    Сообщения:
    95
    Симпатии:
    8
    Вот смотрите, есть куча рекламных площадок (да что там куча - почти все), и они разрешают вставить заглушку - скрипт другой рекламной сети. Чтоб при отсутствии рекламодателей показывался код другой рекламной системы. Вопрос: кто-кого угробил?
     
  10. fwfw

    fwfw Писатель

    Регистр.:
    5 фев 2015
    Сообщения:
    1
    Симпатии:
    0
    Можно использовать iframe для этого, но домен его должен быть другим.
    Скрипт из iframe с другим доменом не может получить доступ к странице так и наоборот