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

balemey

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

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

Как дать пользователям возможность вводит код скрипта, чтобы потом впоследствии выводить этот код на страницу, но и с безопасностью не промахнуться? Как это делают другие? или может кто-то из вас
 
Мне кажется, это невозможно, разрешить вставлять свой js и при этом еще и с защитой быть. Вы же не сможете запретить к примеру, банально удалить какой-то блок со страницы, или тот же alert натывать, ну или те же xss.
Почитайте:
Для просмотра ссылки Войди или Зарегистрируйся
 
А если учесть, что конечный код будет выводиться на сайте того же пользователя, а не на сайте который защищаем?
т.е. фактически мы только записываем js в бд, а выводится он будет только на сайте того кто этот код ввел.
 
Тогда и париться особо не стоит. Ну украдет он свои куки, которые хранятся у него же в браузере, ну ничего страшного не будет :D Главное, быть уверенным, что другие, на это не попадутся.
 
Сделать свою форму, свой обработчик к ней, который будет заносить в базу и вставляй хоть тело скрипта, хоть линки на них, а при генерации страницы обрабатывать и выводить в DOM, только модерация лишней не будет в любом случае.
 
Можно заранее определить доступные типы кода js, сделать спец тег, например, <code type='advert'> , на стороне сервера парсить этот код и заменять валидным и безопасным js.
 
Можно заранее определить доступные типы кода js, сделать спец тег, например, <code type='advert'> , на стороне сервера парсить этот код и заменять валидным и безопасным js.
А что делать с кодом который обфуксирован?
 
А что делать с кодом который обфуксирован?
мы же здесь не рассматриваем доверие автора к конкретным рекламным площадкам с их кодом, вопрос в ограничение вида js кода, который может вставить пользователь
 
тем самым вы угробите свою защиту
Вот смотрите, есть куча рекламных площадок (да что там куча - почти все), и они разрешают вставить заглушку - скрипт другой рекламной сети. Чтоб при отсутствии рекламодателей показывался код другой рекламной системы. Вопрос: кто-кого угробил?
 
Можно использовать iframe для этого, но домен его должен быть другим.
Скрипт из iframe с другим доменом не может получить доступ к странице так и наоборот
 
Назад
Сверху