Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: нужен совет по защите от взлома на php/perl
 
 автор: prosaic   (19.09.2008 в 12:11)   письмо автору
 
 

Добрый день.
Задача такая: пользователь может вставлять в textarea теги и javascript, но не может вставлять php/perl. Как грамотно защититься от недоброжелателей? Использование функций addslashes() и htmlspecialchars() в данном случае не прокатит.
Спасибо.

  Ответить  
 
 автор: sim5   (19.09.2008 в 12:25)   письмо автору
 
   для: prosaic   (19.09.2008 в 12:11)
 

Вставляемый пользователем код ведь для вывода на страницу? Значит htmlspecialchars() к этому коду, или <XMP>любой код</XMP>. Или здача иная?

  Ответить  
 
 автор: prosaic   (19.09.2008 в 12:31)   письмо автору
 
   для: sim5   (19.09.2008 в 12:25)
 

да. то что вставляет пользователь, будет выводится на странице.
НО. нужно пропускать теги и js код. поэтому эти функции не подходят.
может быть нужно создать массив каких-либо символов для автозамены?

  Ответить  
 
 автор: sim5   (19.09.2008 в 12:34)   письмо автору
 
   для: prosaic   (19.09.2008 в 12:31)
 

Что значит пропускать теги, HTML? А я разве вам говорю о них? Вы хотите, чтобы код JS, который введет пользователь, исполнялся при выводе?

  Ответить  
 
 автор: prosaic   (19.09.2008 в 12:40)   письмо автору
 
   для: sim5   (19.09.2008 в 12:34)
 

Да

  Ответить  
 
 автор: sim5   (19.09.2008 в 12:44)   письмо автору
 
   для: prosaic   (19.09.2008 в 12:40)
 

И о какой защите тогда может идти речь?

  Ответить  
 
 автор: prosaic   (19.09.2008 в 12:46)   письмо автору
 
   для: prosaic   (19.09.2008 в 12:40)
 

с сайта php.net

htmlspecialchars — Преобразует специальные символы в HTML сущности
....
Производятся следующие преобразования:

* '&' (амперсанд) преобразуется в '&amp;'
* '"' (двойная кавычка) преобразуется в '&quot;' when ENT_NOQUOTES is not set.
* ''' (одиночная кавычка) преобразуется в '&#039;' только в режиме ENT_QUOTES.
* '<' (знак "меньше чем") преобразуется в '&lt;'
* '>' (знак "больше чем") преобразуется в '&gt;'


это значит, что пользователь написав тег <b> после сохранения увидит &lt;b&gt;
эта функция не подходит.

мне нужно чтобы выводились нормально текст, теги и js-код. только. остальное (php,perl) блокировалось.

  Ответить  
 
 автор: sim5   (19.09.2008 в 12:55)   письмо автору
 
   для: prosaic   (19.09.2008 в 12:46)
 

А вы не боитесь, что я вам червя закину, если вы мне разрешите вводить исполнямый на странице скрипт? Для того, чтобы дать пользователю возможность вводить <b></b> существует ВВ-код.

  Ответить  
 
 автор: prosaic   (19.09.2008 в 12:59)   письмо автору
 
   для: sim5   (19.09.2008 в 12:55)
 

хорошо. тогда так. для удобства пользователя используется редактор TinyMCE, в котором он, помимо текста может вставить теги. Также существует поле для вставки кода счетчиков на сайт.
Червя то пользователь вставит, но только к себе на страницу. Мне же надо обезопасить себя, чтобы пользователь не влез в систему.

  Ответить  
 
 автор: sim5   (19.09.2008 в 13:04)   письмо автору
 
   для: prosaic   (19.09.2008 в 12:59)
 

Ах даже так, ну-ну. Есть такая штука, как IFRAME, ничего не мешает мне встроить тогда ее на страницу. Работать конечно она будет у клиента, но ведь запущен он будет от имени вашего домена, а значит мне доступно многое. Да и на клиенте я могу куку свободно уже воровать и себе отсылать.
Не городите ерунды, код, который вводит вам пользователь это "для почитать", а вот то что надо исполнять, то это должно быть только вашим.

  Ответить  
 
 автор: prosaic   (19.09.2008 в 13:15)   письмо автору
 
   для: sim5   (19.09.2008 в 13:04)
 

как тогда реализованы подобные системы на хостингах, предоставляющих конструкторы сайтов?
воровать куку. да там по сути ничего нет важного. читать - не записывать. домен в данном случае будет не мой, а пользователя. если вы правы, то как же быть с подобными системами. неужели они лишены безопасности?

  Ответить  
 
 автор: sim5   (19.09.2008 в 13:25)   письмо автору
 
   для: prosaic   (19.09.2008 в 13:15)
 

Не знаю о каких конструкторах говорите вы, но, если разговор о JS, то я бы уже предоставил необходимую библиотеку, которая бы выполняла "желания" пользователя, типа div, который слева, хочу видеть справа. Но чтобы мне пользователь всякий скрипт закидывал... Нет уж извольте, таким образом можно на машину клиентов, если такие самопальные шедевры могут видеть все, можно столько накидать. Ведь есть куда страшнее вещи чем JS.

  Ответить  
 
 автор: prosaic   (19.09.2008 в 13:35)   письмо автору
 
   для: sim5   (19.09.2008 в 13:25)
 

хорошо. убираем возможность вставки js и тега <iframe>. как решить задачу?

  Ответить  
 
 автор: sim5   (19.09.2008 в 13:40)   письмо автору
 
   для: prosaic   (19.09.2008 в 13:35)
 

Задачу чего? Если блокировать выполненеие любого кода, который ввел автор, то я уже говорил как.

  Ответить  
 
 автор: prosaic   (19.09.2008 в 13:42)   письмо автору
 
   для: sim5   (19.09.2008 в 13:40)
 

Задача - возможность добавления тегов. исключая js, php, perl.

  Ответить  
 
 автор: sim5   (19.09.2008 в 13:44)   письмо автору
 
   для: prosaic   (19.09.2008 в 13:42)
 

Каких тегов и зачем? Пусть он втсавляет что хочет. Для того чтобы их увидеть на странице как текст - знаете как, для того чтобы исполнить, то РНР код и так на клиенте никак не будет исполнен, а остальное уже обсуждалось.

PS. Не IFRAME страшен сам по себе, а задачи для которых он может использоваться.

  Ответить  
 
 автор: KPETuH   (19.09.2008 в 17:02)   письмо автору
 
   для: prosaic   (19.09.2008 в 13:42)
 

введите псевдо теги разрешенные для использования и обрабатывайте их...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования