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

Форум PHP

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

 

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

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

тема: TinyMCE - сниффер или xss
 
 автор: tima2010   (14.03.2012 в 18:06)   письмо автору
 
 

Привет!
Решил тут поставить TinyMCE с панелькой редактирования для посетителей сайта которые могут добавлять сообщения.

С нее пользователь может вставлять изображения по внешнему URL писать тексты ссылки и т.д.

Собственно такой вопрос, может ли посетитель вставить какой либо сниффер и украсть куки?
И на сколько безопасно использовать TinyMCE когда он доступен посетителям сайта?

спасибо

  Ответить  
 
 автор: admin   (14.03.2012 в 18:10)   письмо автору
 
   для: tima2010   (14.03.2012 в 18:06)
 

куки можно украсть и без "сниффер")
лучше всего заменить куки сессией!

  Ответить  
 
 автор: tima2010   (14.03.2012 в 18:13)   письмо автору
 
   для: admin   (14.03.2012 в 18:10)
 

Хорошо, а вообще если в редактор возможно вставлять изображения, это представляет опасность?
Как еще можно украсть куки не прибегая к соц инженерии?

  Ответить  
 
 автор: Гость   (15.03.2012 в 07:23)   письмо автору
 
   для: tima2010   (14.03.2012 в 18:06)
 

1. Необходимо строго фильтровать полученные данные из таких форм и вырезать не только все лишние и запрещенные теги, но и так же вырезать лишние атрибуты и их свойства. Лучше использовать уже готовое решение для подобных задач, впрочем можно написать и самому, в целях понимая общего механизма работы + поднимите скилл на этом деле).

Для примера разрешаем теги и их атрибуты:
1. Тег "<p>", нет разрешенных атрибутов.
3 Тег "<a>", разрешены атрибуты: "href" (с валидацией чтоэто действительно ссылка).

Подаем на вход текст:
<p id="z">
  <a href="/link/1", onclick="...">222222</a> <b>333333311111111</b>
</p>
<p>1


В результате действия фильтра мы должны получить код:
<p>
  <a href="/link/1">222222</a>
</p>
<p>1</p>

Как видите в нем вырезаны запрещенные атрибуты и теги, а также закрыты не закрытые теги (альтернативный вариант - удалять их).

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

  Ответить  
 
 автор: tima2010   (16.03.2012 в 20:02)   письмо автору
 
   для: Гость   (15.03.2012 в 07:23)
 

>> Лучше использовать уже готовое решение для подобных задач
подскажите пожалуйста где готовые? на их примере быстрее пойму решение и решу задачу.
Просто использование любого wysiwyg редактора как по мне это не безопасно.

По сути для оформления текста нужны та несколько тегов, жирный, наклонный, зачеркнутый, по середке, список, нумерованный, и ссылка. А заставлять пользователей видеть прелести HTML не хочется.

По счет второго так и сделано, проверяем действительно передано изображние:
<?php
$img 
$_FILES["img"]['tmp_name'];
$img_mime getimagesize($img);
if (
$img_mime == '' || $img_mime['mime'] != 'image/jpg' || $img_mime['mime'] != 'image/png' || $img_mime['mime'] != 'image/gif') {
    echo 
'ERROR!'
}
?>

  Ответить  
 
 автор: tima2010   (16.03.2012 в 20:14)   письмо автору
 
   для: tima2010   (16.03.2012 в 20:02)
 

или вообще использовать что то типа?
$text=strip_tags($text, '<a><b>');

только он пропустит <a href="123" onclick="..."></a> ((

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

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