Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сross Site Sсriрting — межсайтовый скриптинг, вопрос безопасности 
:(
    Опции темы
Fieral
Дата 7.5.2010, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 250
Регистрация: 10.12.2007

Репутация: нет
Всего: 1



Добрый день.

У меня возник вопрос по безопасности, относительно XSS (http://en.wikipedia.org/wiki/Cross-site_scripting)

Насколько я понял, суть такого взлома в том что внутрь переменных, полученных со стороны пользователя, кладутся специальным образм составленный строки, которые при интерпритации на стороне сервера позволяют выполнить вредоносный код. Коротко, суть проблемы в том, что разработчик просто забывает включать фильтрацию на различные вводимые символы, такие, например, как: скобки(< , >), кавычки(“ ‘), слеши(/ , \), и т.д.

Очевидно что для борьбы с этим типом атак необходимо проверять корректность получаемых данных со стороны пользователя. 

Вопрос: достаточно ли для защиты от XSS просто фильтровать все данные полученые со стороны пользователя? Например путём проверки что полученное выражение удовлетворяет соответствующему регулярному выражению? (очевидно что переменная "имя_пользователя" не может содержать слеши и кавычки, и вообще всегда состоит только из букв и пробелов).  Или есть ещё какие-то нюансы которые стоит рассмотреть, и одной фильтрацией тут не обойтись?


Это сообщение отредактировал(а) Fieral - 7.5.2010, 16:52
--------------------
Если собака свернулась калачиком, значит будет дождь, а если сидит выпучив глаза, значит у неё запор.
PM MAIL   Вверх
SelenIT
Дата 8.5.2010, 04:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Fieral, не совсем: XSS - подстановка таких данных, которые, будучи обработаны на сервере и затем выведены в браузере, могут привести к исполнению в нем незапланированного JS-кода. Например, через форму HTML-комментариев нехороший человек может подсунуть ссылку с javascript:-протоколом, отсылающую AJAX-запросом на левый сервер все куки и т.п. того, кто по ней кликнет. Или при подстановке значения в <input value="..."> подсунуть что-то 'гыгы" onclick="doSmethingBad()"' - кавычка закончит value, и остальное превратится в новый, явно нежелательный, атрибут инпута. Поэтому для защиты от XSS надо не тупо фильтровать ввод, а с умом планировать вывод. Самый простой способ - заменять спецсимволы HTML (<, >, ", &) на соотв. сущности (&lt;, &gt;, &quot;, &amp;) (в серверных языках обычно для этого есть готовые средства, типа htmlspecialchars в PHP). Тогда, что бы не ввел вредный юзер, оно отобразится как текст, но не выполнится как HTML. Для значений инпутов этого достаточно, а вот для тех же HTML-комментариев надо уже фильтровать разметку, оставляя только допустимые теги и атрибуты...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.