Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Опасные HTML символы

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Ticksy
Отправлено: 19 Сентября, 2010 - 13:55:00
Post Id


Гость


Покинул форум
Сообщений всего: 71
Дата рег-ции: Июль 2010  


Помог: 0 раз(а)




Опасен ли символ "&", если в сообщениях от пользователей не заменять на "&"?

При замене параметры в ссылках бьются, что плохо.
 
 Top
Uchkuma
Отправлено: 19 Сентября, 2010 - 23:38:34
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Символ как символ. Амперсанд как амперсанд. А какие символы вы считаете опасными? И что вообще вы в данном случае подразумеваете под опасностью?
 
 Top
JustUserR
Отправлено: 20 Сентября, 2010 - 17:18:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Ticksy пишет:
Опасен ли символ "&", если в сообщениях от пользователей не заменять на "&"?
При замене параметры в ссылках бьются, что плохо.
Символ амперсанда используется для специального htmlencode-кодирования информация и таким образом выполняет роль экранирующего элемента - соответственно возможность его прямог использование пользователем может привести к возможности вывода любых HTML-сущностей Тем не менее в передаваемых URL-запросах используется система кодирования urlencode которая работает несколько иным образом - в частности кодировкать символы в ней можно с помощью символа % - что обеспечивает дополнительное разделение уровней интерптерации значений гиперссылок в исходном HTML-коде и позволяет передавать в них любую информацию


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Ticksy
Отправлено: 22 Сентября, 2010 - 16:42:02
Post Id


Гость


Покинул форум
Сообщений всего: 71
Дата рег-ции: Июль 2010  


Помог: 0 раз(а)




Uchkuma пишет:
Символ как символ. Амперсанд как амперсанд. А какие символы вы считаете опасными? И что вообще вы в данном случае подразумеваете под опасностью?

Ну например, < и > надо экранировать в постах от пользователей. Иначе смогут спокойно вставлять хтмл код, что не есть гуд.

Так вот и & экранируется даже в ссылках от пользователей, что портит передаваемые в них параметры Недовольство, огорчение

JustUserR пишет:
Символ амперсанда используется для специального htmlencode-кодирования информация и таким образом выполняет роль экранирующего элемента - соответственно возможность его прямог использование пользователем может привести к возможности вывода любых HTML-сущностей Тем не менее в передаваемых URL-запросах используется система кодирования urlencode которая работает несколько иным образом - в частности кодировкать символы в ней можно с помощью символа % - что обеспечивает дополнительное разделение уровней интерптерации значений гиперссылок в исходном HTML-коде и позволяет передавать в них любую информацию

Я конечно рад, что вы хорошо начитаны... но как мне поступить? Если я уберу экранирование этого символа, то это будет угроза безопасности (но зато параметры в ссылках не будут портится). А если так и оставлю - безопасно, но толку от кликабельных ссылок нет...

Все-таки в известных форумах как-то эти вопросы решают? Растерялся
 
 Top
Uchkuma
Отправлено: 22 Сентября, 2010 - 23:10:09
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Во-первых, не экранирование, а мнемонизация.
Во-вторых, никакой угрозы безопасности нет. Вам в предыдущем посте объяснили, к чему это может привевсти:
JustUserR пишет:
может привести к возможности вывода любых HTML-сущностей
Не вижу никакого смысла их запрещать. Пусть пользователь выведет знак Евро, если ему хочется. Он присутствует далеко не на всех клавиатурах. Или, например, знак копирайта. Не в правилах web 2.0 ограничивать пользователя в свободе без видимых на то причин.
 
 Top
JustUserR
Отправлено: 23 Сентября, 2010 - 16:44:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Ticksy пишет:
Но как мне поступить
Для решения вашей задачи можно использовать такой способ кодирования пользовательских данных который обеспечит одновременно и превращение символов апмерсанда в HTML-сущнсть а также сохранение правильности ссылок - для этого необходимо произвести предварительную замену сводящуюся к замене всех составляющих URL-ссылок на соответствующие urlencode-представления с покомпонентым кодированием - и также возможная замена всех явных вхождений амперсанда в JS-код на его ASCII-представление - и уже в последующем действии осуществить htmlentities-кодирование
Uchkuma пишет:
Не вижу никакого смысла их запрещать
Разрешение на использование амперсанда в явной форме в пользователских сообщениях действительно не представляет никакой реальной угрозы для безопасности - его упоминание было сделано в рамках описания общей схемы предварительного шифрования пользовательской информации - когда ее перевод между различными элементами может привести к изменению уровня трактовки и появлению ошибки или возможности для потенциального взлома


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Ticksy
Отправлено: 29 Сентября, 2010 - 10:51:24
Post Id


Гость


Покинул форум
Сообщений всего: 71
Дата рег-ции: Июль 2010  


Помог: 0 раз(а)




JustUserR, т.е. можно спокойно разрешать использование & без преобразования в амперсанд?

Вообще я мало что понял из вашего поста... слишком сложно описана информация для меня...
 
 Top
JustUserR
Отправлено: 30 Сентября, 2010 - 16:48:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Ticksy пишет:
JustUserR, т.е. можно спокойно разрешать использование & без преобразования в амперсанд?
Во время осуществления обработки на серверном PHP-скрипте введенного пользователем текстового содержимого - действительно возможно игнорировать просмотр и нахождения амперсандов то есть оставлять их в оригинальном виде - при этом такое поведение обработчика не должно приводить к появлению каких-лиюо проблем с безопасностью Тем не менее в общем случае наличие символов амперсандов в исходном HTML-коде в реальном представлении может приводить к некоторым проблемам - в частности при анализе в JS-скрипте некоторого HTML-кода все входящие в него символа амперсанда не используемые для кодирования будут представлены в виде &amp; автоматически - что может в некоторых случаях существенно повлиять на разбор полученной информации на клиенсткой стороне


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Мафия
Отправлено: 05 Марта, 2014 - 15:49:20
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Март 2014  


Помог: 0 раз(а)




В чём может быть опасность символов? Если отправить то, что ввел пользователь, в браузер, то там может оказаться скрипт, ссылка на скрипт, ссылка на картинку на другом сайте.
Что еще опасного может быть?
 
 Top
EuGen Администратор
Отправлено: 05 Марта, 2014 - 16:25:36
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




С Новым Годом.
Тема закрыта!


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB