Некорректная обработка тега URL в версии 2.0.17

Проблемы с установкой или работой phpBB 2.0.x? Ищите ответы здесь!
Sk. Inc.
phpBB 1.2.0
Сообщения: 17
Стаж: 19 лет 9 месяцев

Некорректная обработка тега URL в версии 2.0.17

Сообщение Sk. Inc. »

После обновления форума до версии 2.0.17 вы могли заметить, что ссылки с символом "!" стали некорректно отображаться (перестали интерпретироваться как ссылки). Это ошибка нового шаблона обработчика ссылок.

Лечится довольно просто:

Код: Выделить всё

#-----[ OPEN ]--------------------------------------------- 
# 
includes/bbcode.php

#
#-----[ FIND ]---------------------------------------------
# Line 203
	$patterns[] = "#\[url\]([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/url\]#is";
	$replacements[] = $bbcode_tpl['url1'];

	// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
	$patterns[] = "#\[url\]((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/url\]#is";
	$replacements[] = $bbcode_tpl['url2'];

	// [url=xxxx://www.phpbb.com]phpBB[/url] code..
	$patterns[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
	$replacements[] = $bbcode_tpl['url3'];

	// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
	$patterns[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";

#
#-----[ REPLACE WITH ]---------------------------------------------
# 
	$patterns[] = "#\[url\]([\w]+?://[\w\#$%&~/.\-;:=,?!@\[\]+]*?)\[/url\]#is";
	$replacements[] = $bbcode_tpl['url1'];

	// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
	$patterns[] = "#\[url\]((www|ftp)\.[\w\#$%&~/.\-;:=,?!@\[\]+]*?)\[/url\]#is";
	$replacements[] = $bbcode_tpl['url2'];

	// [url=xxxx://www.phpbb.com]phpBB[/url] code..
	$patterns[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?!@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
	$replacements[] = $bbcode_tpl['url3'];

	// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
	$patterns[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?!@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";

#
#-----[ FIND ]---------------------------------------------
# Line 627
	$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);

	// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
	// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
	// zzzz is optional.. will contain everything up to the first space, newline, 
	// comma, double quote or <.
	$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);

#
#-----[ REPLACE WITH ]---------------------------------------------
# 
	$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?!@\[\]+]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);

	// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
	// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
	// zzzz is optional.. will contain everything up to the first space, newline, 
	// comma, double quote or <.
	$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?!@\[\]+]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
Просто в шаблоне при перечислении допустимых букв текста ссылки забыли упомянуть "!": [\w\#$%&~/.\-;:=,?!@\[\]+] :D
Аватара пользователя
svk
phpBB 2.0.3
Сообщения: 384
Стаж: 19 лет 10 месяцев
Откуда: Москва, Fortuna-net

Сообщение svk »

спс
NETBYNET Holding system administrator
Аватара пользователя
Coagulant
Former team member
Сообщения: 955
Стаж: 20 лет 4 месяца
Откуда: Москва

Сообщение Coagulant »

Sk. Inc.
  • Поддержка
    Проблемы с инсталляцией и/или работой phpBB 2.0.x? Получите помощь здесь! Не постите сообщений о багах и запросов новых возможностей!
Все найденные баги - в багтрек. И пусть разработчики фиксят.
Sk. Inc.
phpBB 1.2.0
Сообщения: 17
Стаж: 19 лет 9 месяцев

Сообщение Sk. Inc. »

Это сообщение не о баге, а о его исправлении :D
Я думал, что "сообщение о баге", это когда его находишь и просишь решить :?
Аватара пользователя
Coagulant
Former team member
Сообщения: 955
Стаж: 20 лет 4 месяца
Откуда: Москва

Сообщение Coagulant »

Тогда уж в раздел Бета-версий, оформив как мод :wink:

Добавил ссылку на тему в наш список ошибок phpbb.
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5432
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 177 раз
Поблагодарили: 749 раз

Сообщение Siava »

Может вернуть bbcode.php в состояние версии 2.0.16 и использовать мод http://www.phpbbguru.net/community/view ... 3647#33647 ?
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
Vladson
Former team member
Сообщения: 816
Стаж: 21 год
Откуда: Estonia, Tallinn

Сообщение Vladson »

В ссылке в соответсвии со стандартом не должно быть этого знака, а стало быть это не баг а фича !!!
Серый цвет - светлый (светлее чёрного), но он и тёмный (темнее белого), он же промежуточный (между чёрным и белым). Теорию относительности никто не отменял. Истина в целом - понятие виртуально-ситуативное.
Sk. Inc.
phpBB 1.2.0
Сообщения: 17
Стаж: 19 лет 9 месяцев

Сообщение Sk. Inc. »

Vladson
А чего тогда делать, если ссылка на файл с таким именем существует?
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 20 лет 6 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

Sk. Inc.
Писать админу чтоб исправлял ссылку, на соответствующую стандартам.
я люблю daft punk | новый sugoi.ru
Аватара пользователя
Coagulant
Former team member
Сообщения: 955
Стаж: 20 лет 4 месяца
Откуда: Москва

Сообщение Coagulant »

Можно ссылочку на стандарт, пожалуйста?

Добавлено спустя 58 секунд:

Я не сомневаюсь, просто из любопытства, где именно в RFC указаны недопустимые символы.
Sk. Inc.
phpBB 1.2.0
Сообщения: 17
Стаж: 19 лет 9 месяцев

Сообщение Sk. Inc. »

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

Хотя это личное мое программерское мнение. :D
Аватара пользователя
Vladson
Former team member
Сообщения: 816
Стаж: 21 год
Откуда: Estonia, Tallinn

Сообщение Vladson »

Sk. Inc. писал(а):некорректная обработка может стать той уязвимостью, которая приведет к дыре в безопасности
Именно это и стало причиной более детальной обработки тега в версии 2.0.17
Серый цвет - светлый (светлее чёрного), но он и тёмный (темнее белого), он же промежуточный (между чёрным и белым). Теорию относительности никто не отменял. Истина в целом - понятие виртуально-ситуативное.
DJ Sample
phpBB 1.4.4
Сообщения: 156
Стаж: 20 лет 11 месяцев

Сообщение DJ Sample »

Гм...
А вроде не работает...? :shock:
Сделал усё, а урл'ы так и остались в глючном виде.....
Аватара пользователя
Mr. Anderson
phpBB Guru
phpBB Guru
Сообщения: 7522
Стаж: 21 год 2 месяца
Откуда: СССР
Благодарил (а): 4 раза
Поблагодарили: 94 раза

Сообщение Mr. Anderson »

А кто сказал, что обработка некорректная? :?
DJ Sample
phpBB 1.4.4
Сообщения: 156
Стаж: 20 лет 11 месяцев

Сообщение DJ Sample »

Mr. Anderson
А что, разве вот это - корректно?
http://ttm.chitago.ru/forum/viewtopic.php?t=491
Или ты про другое?

Вернуться в «Поддержка phpBB 2.0.x»