Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.06.2011, 14:53
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Как можно в DIV_е с включенным contentEditable запретить использовать <SCRIPT> и <A>?
Можно ли при использовании режима редактирования блока с contenteditable=yes как-то запретить работу в этом же блоке javascript_ов и активных ссылок?

1. Предполагаю, что редактируемый блок в броузере - это аналог самого броузера. И, если в броузере в целом отключен javascript, то он и в редактируемом блоке работать не будет. Но как бы разрешить работу javascript во всем броузере, а в редактируемом блоке запретить?

2. Можно было бы парсить редактируемый текст, отыскивать теги <A> и удалять их... но как-то муторно это...

Для чего это? Расскажу коротко о глобальной задаче. Есть корпорация с сотрудниками, в которой разрешен доступ только к одному сайту mysite.ru (к другим запрещено). На данном сайте есть окно для редактирования текста (contentEditable) с последующим сохранением в базе данных и обратным отображением в броузере. Сотрудник может дома при наличии доступа к в интернет к другим сайтам скопировать каку-либо полезную для него информацию (например, статью) с другого сайта и вставить в окно mysite.ru
Далее на рабочем месте сотрудник уже имеет доступ к своей статье и ПРЕДОСТАВЛЯЕТ ДОСТУП к своей статье другим сотрудникам.
В чем проблема? Информация может быть скопирована с известного сайта, например, http://www.nokia.ru/products/phones/nokia-c7-00
а может и откуда угодно... То есть, с вредоносного сайта с вытекающими последствиями. А хотелось бы этого избежать.
Ответить с цитированием
  #2 (permalink)  
Старый 30.06.2011, 15:01
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

тебе нужен html санитайзер на сервере
__________________
.ня
Ответить с цитированием
  #3 (permalink)  
Старый 30.06.2011, 15:07
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

вот такой регуляркой можно скрипты вычищать
/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi
Ответить с цитированием
  #4 (permalink)  
Старый 30.06.2011, 15:32
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от tenshi Посмотреть сообщение
тебе нужен html санитайзер на сервере
Гугл сообщает, что "Санитайзер — антибактериальный гель, используется для дезинфекции рук..."
Может, подскажете ссылки на готовые (хорошие) скрипты?
Ответить с цитированием
  #5 (permalink)  
Старый 30.06.2011, 15:34
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от nikita.mmf Посмотреть сообщение
вот такой регуляркой можно скрипты вычищать
/<script\b[^<]*(??!<\/script>)<[^<]*)*<\/script>/gi
Хакеры давно это обходят разными способами. Например, скрипт можно создавать "на лету" типа .......write('<scr' + 'ipt>')..... и регулярко - ой.
Ответить с цитированием
  #6 (permalink)  
Старый 01.07.2011, 10:46
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

Маэстро, но для того чтобы создать на лету скрипт его всего равно надо вставить в тэг script, и еще вам надо вырезать ifram'ы
Ответить с цитированием
  #7 (permalink)  
Старый 01.07.2011, 11:31
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

учимся пользоваться поиском http://yandex.ru/yandsearch?text=htm...=139040&lr=213
__________________
.ня
Ответить с цитированием
  #8 (permalink)  
Старый 02.07.2011, 17:11
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от tenshi Посмотреть сообщение
учимся пользоваться поиском http://yandex.ru/yandsearch?text=htm...=139040&lr=213
Да чтож такое... какой у нас серьезный профессорско-преподавательский состав! Шуток прям совсем не понимает... учит поиском пользоваться... да еще в яндексе...
Как ни странно, пользоваться поиском я умею. Я просил ВАШИ рекомендации на ХОРОШИЕ скрипты (если знаете), а не спрашивал как пишется слово санитайзер.
Ответить с цитированием
  #9 (permalink)  
Старый 02.07.2011, 17:26
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от nikita.mmf Посмотреть сообщение
Маэстро, но для того чтобы создать на лету скрипт его всего равно надо вставить в тэг script
Кому? Мне? Или Вам? А спорим я запущу javascript без тега <script>?
Вот Вам пару примерчиков:
<input type="button" value="1 - здесь нет тега script" onclick=alert('ага!')>
<br>
<input type="button" value="2 - здесь нет тега script" onclick=window.location.replace('http://porno.com')>
Ответить с цитированием
  #10 (permalink)  
Старый 02.07.2011, 17:33
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,491

Кое где пропускает и такое.)
<img onerror="alert('И не скрипт и нажимать ничего не надо, хе-хе')" src="0">
__________________
29375, 35

Последний раз редактировалось Aetae, 02.07.2011 в 17:37.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 23:30