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

Форум PHP

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

 

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

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

тема: Достаточно ли использовать htmlspecialchars чтобы исключить xss-атаку
 
 автор: Саша   (17.05.2007 в 19:54)   письмо автору
 
 

Достаточно ли использовать htmlspecialchars для удаления возможности быть атакованым xss методом. Функция не кодируют символ %, это каким то образом может повлиять на безопасность?

   
 
 автор: Trianon   (17.05.2007 в 20:17)   письмо автору
 
   для: Саша   (17.05.2007 в 19:54)
 

Вполне достаточно.
Сам посебе процент никакой опасности не представляет.
тег из него не слепить.

Но надо очень жестко фильтровать тот контент, что попадает в раздел <head>
Туда нельзя класть символы +

   
 
 автор: Саша   (17.05.2007 в 20:24)   письмо автору
 
   для: Trianon   (17.05.2007 в 20:17)
 

Спасибо Trianon, я тоже так думаю. Просто мне ткнули носом, что вот функция не кодирует символ %.

Вопрос к mefestofel, Вы знаете как можно использовать % в зловредных целях? Нет времени поискать (

   
 
 автор: ANGO   (17.05.2007 в 20:29)   письмо автору
 
   для: Саша   (17.05.2007 в 20:24)
 

думаю если кто то пересылает ?ID=2 для запроса в базу, скажем для какой то категории, то подстроив % - можно получить сразу весь список того что есть ... разумеется если в базе тупо стоит LIKE 'ID'

   
 
 автор: Trianon   (17.05.2007 в 20:53)   письмо автору
 
   для: ANGO   (17.05.2007 в 20:29)
 

>думаю если кто то пересылает ?ID=2 для запроса в базу, скажем для какой то категории, то подстроив % - можно получить сразу весь список того что есть ... разумеется если в базе тупо стоит LIKE 'ID'

Вы знаете , в запросе помимо LIKE 'ID' можно написать такой бред, что никакие проверки не спасут. TRUNCATE TABLE например. Это повод запрещать буквы?

   
 
 автор: mefestofel   (17.05.2007 в 20:38)   письмо автору
 
   для: Саша   (17.05.2007 в 20:24)
 

да можно в SQL Injection, например... с % как правило начинаются ASCII символы
Еще надо подумать о символе + в url

   
 
 автор: Саша   (17.05.2007 в 20:53)   письмо автору
 
   для: mefestofel   (17.05.2007 в 20:38)
 

да, в этом методе можно использовать,

спасибо!

   
 
 автор: Trianon   (17.05.2007 в 20:55)   письмо автору
 
   для: mefestofel   (17.05.2007 в 20:38)
 

в SQL никакие символы с процента не начинаются. Ну кроме самого процента конечно.
какое отношение SQL_injection имеет к htmlspecialchars?

Поймите же вы все наконец! Не бывает плохих символов! Бывают плохие намерения и кривой код скрипта! .

   
 
 автор: mefestofel   (18.05.2007 в 00:38)   письмо автору
 
   для: Trianon   (17.05.2007 в 20:55)
 

в SQL ничего не начинается, а вот инъекции начинаются! Примеры привести?

   
 
 автор: Unkind   (18.05.2007 в 00:50)   письмо автору
 
   для: mefestofel   (18.05.2007 в 00:38)
 

Вообще-то тема о XSS была. Каким тут боком SQL Injection? А почему бы о PHP Injection не поговорить, м?

   
 
 автор: ANGO   (18.05.2007 в 01:19)   письмо автору
 
   для: Unkind   (18.05.2007 в 00:50)
 

Тоже не плохо ...
можно подумать, и на основе рус-латин транслита написать прикольный словарик, типа
сволочь - редиска
и т.д.
...
))

   
 
 автор: mr Bin   (18.05.2007 в 01:22)   письмо автору
 
   для: ANGO   (18.05.2007 в 01:19)
 

ё моё, каждый о своём...

   
 
 автор: mefestofel   (18.05.2007 в 01:21)   письмо автору
 
   для: Unkind   (18.05.2007 в 00:50)
 

> Вопрос к mefestofel, Вы знаете как можно использовать % в зловредных целях? Нет времени поискать (
этот вопрос был мне адресован!, вроде в третьем ответе....

% использовать можно и если хотите даже нужно, когда я писал это, я имел в виду, что в одной из версий MySQL(не буду писать в какой, а то кто-нибудь сразу побежит испытывать) можно сделать инъекцю в которой помимо %20UNION%20SELECT%20*%20FROM... будет содержаться подборка из определенных ASCII символов и еще всякой ерунды, некорректно обрабатываемой(опять же не пишу какой)...
и тогда... сами понимаете...
Это могу подтвердить на собственном опыте - сам тестировал.
Я имел в виду что хорошо бы и эту последовательность ловить, тем более когда пишешь коммеррческую версию CMS, ты ведь не знаешь где и у кого она будет стоять? Что за версия БД будет установлена на сервере. А потом когда какой-нибудь юный натуралист поизголяется над Вашей CMS, не очень будет приятно и для Вас и для заказчика.

В общем тема закрыта.

   
 
 автор: Unkind   (18.05.2007 в 09:42)   письмо автору
 
   для: mefestofel   (18.05.2007 в 01:21)
 

Вы, кажется, не знаете основ протокола HTTP. Иначе про процент как про черта не говорили бы.

   
 
 автор: mefestofel   (18.05.2007 в 12:04)   письмо автору
 
   для: Unkind   (18.05.2007 в 09:42)
 

> Вы, кажется, не знаете основ протокола HTTP
Unkind, дайте мне адрес какого-нибудь Вашего проекта, и я сломаю его самым экзотическим образом, продемонстрировав знание протокола HTTP и не только. ;-)
ВЫ НЕ ПОНИМАЕТЕ МЕНЯ. ПОМОЕМУ Я ГОВОРЮ В ПУСТОТУ!

   
 
 автор: Unkind   (18.05.2007 в 15:29)   письмо автору
 
   для: mefestofel   (18.05.2007 в 12:04)
 

Что же вы такой нервный? Уже не первый раз проявляете агрессию. Лечитесь.

   
 
 автор: Trianon   (18.05.2007 в 10:27)   письмо автору
 
   для: mefestofel   (18.05.2007 в 01:21)
 

Символ процента "опасен" вовсе не этим. Фактически, это символ эскейпинга в кодировании application/x-www-urlencoded, применяемый при оформлении URI. И только пройдя через URI и попадя в mysql_query незащищенной, Ваша строка могла бы стать опасной.
Да, параметры тегов вроде src и href нужно формировать аккуратно. Но это проблема слегка другого аспекта безопасности. Не связанного с выводом символов в потоке текста..

   
 
 автор: Trianon   (18.05.2007 в 10:31)   письмо автору
 
   для: mefestofel   (18.05.2007 в 01:21)
 

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

   
 
 автор: Саша   (18.05.2007 в 10:43)   письмо автору
 
   для: Trianon   (18.05.2007 в 10:31)
 

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

Кстати да ), а пример как это можно использовать, я на это обратил внимание, но запарился и забыл спросить

   
 
 автор: Trianon   (18.05.2007 в 10:50)   письмо автору
 
   для: Саша   (18.05.2007 в 10:43)
 

На "как это использовать" я точно не отвечу.
Но подсказку для понимания дам. html Charset&Encoding autodetection и RFC-2152

   
 
 автор: Саша   (18.05.2007 в 10:54)   письмо автору
 
   для: Trianon   (18.05.2007 в 10:50)
 

А как он из урла может попасть в head? Ну не считая варианта, если я сам задам такую логику.

   
 
 автор: Loki   (18.05.2007 в 11:06)   письмо автору
 
   для: Саша   (18.05.2007 в 10:54)
 

Абсолютно элементарно: посмотрите на заголовок темы и на заголовок окна...

   
 
 автор: Trianon   (18.05.2007 в 11:18)   письмо автору
 
   для: Саша   (18.05.2007 в 10:54)
 

а при чем здесь URL?

   
 
 автор: Саша   (18.05.2007 в 11:40)   письмо автору
 
   для: Trianon   (18.05.2007 в 11:18)
 

каким образом можно загнать + ?

   
 
 автор: Trianon   (18.05.2007 в 12:29)   письмо автору
 
   для: Саша   (18.05.2007 в 11:40)
 

Читайте RFC
http://www.faqs.org/rfcs/

   
 
 автор: Loki   (18.05.2007 в 11:05)   письмо автору
 
   для: Trianon   (18.05.2007 в 10:31)
 

Потому что там нужно определенное стечение факторов: Броузер IE, автоопределение кодировки и 7 битная кодировка в заголовках сервера. В русскоязычном сегменте инета, как мне кажется, это редкость.

   
 
 автор: Trianon   (18.05.2007 в 11:19)   письмо автору
 
   для: Loki   (18.05.2007 в 11:05)
 

1. про аспект семибитной кодировки в заголовках сервера можно поподробнее? Впервые слышу.
2 Достаточно ли директивы AddDefaultCharset в .htaccess дабы отбить у IE тягу к автоопределению?

   
 
 автор: Саша   (18.05.2007 в 11:49)   письмо автору
 
   для: Trianon   (18.05.2007 в 11:19)
 

http://www.geocities.com/g_naumovets/cyrmnl-k.htm вот сдесь я нашел про 7-битную кодировку

   
 
 автор: Loki   (18.05.2007 в 17:36)   письмо автору
 
   для: Trianon   (18.05.2007 в 11:19)
 

Наверняка не знаю. Просто когда я пытался использовать пример подобной атаки на своем сервере, ничего у меня не вышло - ie использовать 7 битную кодировку ни в какую не хотел. Вот я и решил что дело в заголовках сервера, так как больше в броузер ничего не передавалось.

   
 
 автор: Саша   (18.05.2007 в 11:37)   письмо автору
 
   для: Loki   (18.05.2007 в 11:05)
 

т. е. если <title>Достаточно ли использовать htmlspecialchars чтобы исключить xss-атаку</title>
вставить +, то это как то может навредить? А как?

   
 
 автор: mefestofel   (18.05.2007 в 13:32)   письмо автору
 
   для: Loki   (18.05.2007 в 11:05)
 

UTF-7 - RFC2152

Вот Вам код в UTF-7 кодировке:
+ADwA-script+AD4A-alert('XSSEnabled+ACEA-')+ADwA-/script+AD4A-
Посмотрите на заголовок страницы и сравните с названием темы, если ввести эту гадость в строке url, то Вы либо ничего не получите, либо получите набор иероглифов(код исходной строки).
Но необходимо еще условие: это определение кодировки после отображения титула, если кодировка не определена то браузеры подбирают ее автоматически.
. Такое можно периодически встретить на некоторых форумах интернета, например YaBB(скачайте его себе и пытайте на здоровье), если в поле 'тема' вставить подобный код, то при определенном стечении обстоятельств можно многое получить...
>В русскоязычном сегменте инета, как мне кажется, это редкость.
Не согласен
Браузер Mozilla для этих целей не подходит.

   
 
 автор: mefestofel   (18.05.2007 в 13:56)   письмо автору
 
   для: Саша   (17.05.2007 в 19:54)
 

> Достаточно ли использовать htmlspecialchars для удаления возможности быть атакованым xss методом.
НЕТ НЕ ДОСТАТОЧНО
"ВАШ XSS-МЕТОД":
- XSS-нападение с использованием UTF-7 кодировки.
- XSS-нападение с помощью метода TRACE. - экзотика, да? зато работает
- XSS нападение через data
- XSS-нападение через Flash-анимаци. - ActionScript.
- XSS-DOM
- использование ошибок и критических уязаимостей в ПО для проведения XSS.
- .........
и т.д.

Достаточно только для:
- XSS-нападения с помощью вставки HTML-кода

   
 
 автор: Valick   (18.05.2007 в 14:24)   письмо автору
 
   для: mefestofel   (18.05.2007 в 13:56)
 

Хотелось бы уточнить... с помощью HTML или JavaScript кода?

   
 
 автор: Trianon   (18.05.2007 в 14:36)   письмо автору
 
   для: mefestofel   (18.05.2007 в 13:56)
 

Между прочим, мы тут вроде как на форуме php....

Дайте, пожалуйста, определение XSS-атаки.

А то странно как-то получается. Вроде о чем-то говорим, а о чем - не ведаем.

   
 
 автор: Valick   (18.05.2007 в 15:35)   письмо автору
 
   для: Trianon   (18.05.2007 в 14:36)
 

Между прочим, мы тут вроде как на форуме php

Алягер ком алягер... некоторым индивидумам пользующим такого рода атаки, глубоко по-барабану на каком форуме это обсуждается... поэтому тему надо раскрыть как можно полнее.

   
 
 автор: Trianon   (18.05.2007 в 16:31)   письмо автору
 
   для: Valick   (18.05.2007 в 15:35)
 

>Между прочим, мы тут вроде как на форуме php
>
>Алягер ком алягер... некоторым индивидумам пользующим такого рода атаки, глубоко по-барабану на каком форуме это обсуждается...
>поэтому тему надо раскрыть как можно полнее.

А вот тут я соглашусь со вторым - вытертым - постом. одной темой всего не раскроешь.
Вреда от такой мешанины будет явно больше чем пользы.

   
 
 автор: Саша   (18.05.2007 в 14:50)   письмо автору
 
   для: mefestofel   (18.05.2007 в 13:56)
 

А как предотвратить эти?
- XSS-нападение с использованием UTF-7 кодировки.
- XSS-нападение с помощью метода TRACE. - экзотика, да? зато работает
- XSS нападение через data

Можно ссылку где это описано?

   
 
 автор: mefestofel   (18.05.2007 в 16:43)   письмо автору
 
   для: Саша   (18.05.2007 в 14:50)
 

Если хотите поговорить об XSS, открывайте отдельную тему в форуме "Разное."
Чтобы не мешеть все подряд, думаю так будет лучше. ;-)

   
Rambler's Top100
вверх

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