Вывести аватар по прямому урлу
					Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
 ).
		
		
	Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
- 
				AlexOo
 - phpBB 2.0.1
 - Сообщения: 293
 - Стаж: 12 лет 5 месяцев
 - Благодарил (а): 88 раз
 - Поблагодарили: 11 раз
 
Вывести аватар по прямому урлу
Всем привет.
Пользовательские авараты лежат в папке /images/avatars/upload/ и имеют стремные названия, из серии 2ae4f5f63e37f45d9de551aeb203db7a_191.jpg, где 191 - это ID пользователя в базе.
Подскажите пожалуйста:
1. Есть ли возможно упростить названия файлов с аватарками по типу <ID>.<Расширение_файла>
2. Подтянуть в шаблон аватарку по прямому урлу, из серии site.ru/images/avatars/upload/191.jpg
Спасибо.
P.S. И чисто из любопытства, зачем в именах файлов прописывается это мракобесие "2ae4f5f63e37f45d9de551aeb203db7a_"? Неужели из коробки было сложно просто оставить ID, ведь на проекте не может быть 2х пользователей с одним ID и так же не может быть у пользователя более 1 аватара.
Выговорился )))
			
			
									
						Пользовательские авараты лежат в папке /images/avatars/upload/ и имеют стремные названия, из серии 2ae4f5f63e37f45d9de551aeb203db7a_191.jpg, где 191 - это ID пользователя в базе.
Подскажите пожалуйста:
1. Есть ли возможно упростить названия файлов с аватарками по типу <ID>.<Расширение_файла>
2. Подтянуть в шаблон аватарку по прямому урлу, из серии site.ru/images/avatars/upload/191.jpg
Спасибо.
P.S. И чисто из любопытства, зачем в именах файлов прописывается это мракобесие "2ae4f5f63e37f45d9de551aeb203db7a_"? Неужели из коробки было сложно просто оставить ID, ведь на проекте не может быть 2х пользователей с одним ID и так же не может быть у пользователя более 1 аватара.
Выговорился )))
- 
				Nekstati
														 - Поддержка

 - Сообщения: 3336
 - Стаж: 16 лет 7 месяцев
 - Благодарил (а): 17 раз
 - Поблагодарили: 561 раз
 
Re: Вывести аватар по прямому урлу
1. Бессмысленное действие.
2.
Удалить images/avatars/upload/.htaccess или соотв. строки в конфиге Nginx, если они есть (запрещающие доступ к папке с аватарами)
Открыть includes/functions.php
Найти
Добавить перед
			
			
									
						2.
Удалить images/avatars/upload/.htaccess или соотв. строки в конфиге Nginx, если они есть (запрещающие доступ к папке с аватарами)
Открыть includes/functions.php
Найти
Код: Выделить всё
if ($lazy)Код: Выделить всё
		if ($row['avatar_type'] == 'avatar.driver.upload') {
			$ext		= substr(strrchr($row['avatar'], '.'), 1);
			$stamp		= (int) substr(stristr($row['avatar'], '_'), 1);
			$filename	= strtok($row['avatar'], '_');
			$avatar_data['src'] = "{$user->page['root_script_path']}images/avatars/upload/{$config['avatar_salt']}_$filename.$ext?$stamp";
		}- 
				AlexOo
 - phpBB 2.0.1
 - Сообщения: 293
 - Стаж: 12 лет 5 месяцев
 - Благодарил (а): 88 раз
 - Поблагодарили: 11 раз
 
Re: Вывести аватар по прямому урлу
Nekstati, 
1. Почему бессмысленное ? Зная ID пользователя можно просто условием "if ... to ... else" вывести аватарку, просто сравнивая ID пользователя и имя аватары
2. Без правок ядра я так понимаю никак ?
			
			
									
						1. Почему бессмысленное ? Зная ID пользователя можно просто условием "if ... to ... else" вывести аватарку, просто сравнивая ID пользователя и имя аватары
2. Без правок ядра я так понимаю никак ?
- 
				Татьяна5
														 - Поддержка

 - Сообщения: 12855
 - Стаж: 14 лет 2 месяца
 - Благодарил (а): 160 раз
 - Поблагодарили: 2328 раз
 
Re: Вывести аватар по прямому урлу
Обычно там, где есть id, бывают и аватары, за редким исключениемAlexOo писал(а): 19.02.2024 2:06 Зная ID пользователя можно просто условием "if ... to ... else" вывести аватарку, просто сравнивая ID пользователя и имя аватары
- 
				AlexOo
 - phpBB 2.0.1
 - Сообщения: 293
 - Стаж: 12 лет 5 месяцев
 - Благодарил (а): 88 раз
 - Поблагодарили: 11 раз
 
Re: Вывести аватар по прямому урлу
Татьяна5, давайте возьмем для примера ваш аватар на данном проекте. Он открывается по адресу 
/download/file.php?avatar=38225_1392640473.gif
Если посмотреть оригинальное имя в папке /images/avatars/upload/, то там вероятнее всего будет что-то из серии
ae4f5f63e37f45d9de551aeb203db7a_38225.gif
Так зачем усложнять, если можно его вывести по адресу
/images/avatars/upload/38225.gif
Я просто не очень улавливаю логику. Возможно сможете пролить свет на все это добро ...
			
			
									
						/download/file.php?avatar=38225_1392640473.gif
Если посмотреть оригинальное имя в папке /images/avatars/upload/, то там вероятнее всего будет что-то из серии
ae4f5f63e37f45d9de551aeb203db7a_38225.gif
Так зачем усложнять, если можно его вывести по адресу
/images/avatars/upload/38225.gif
Я просто не очень улавливаю логику. Возможно сможете пролить свет на все это добро ...
- 
				Татьяна5
														 - Поддержка

 - Сообщения: 12855
 - Стаж: 14 лет 2 месяца
 - Благодарил (а): 160 раз
 - Поблагодарили: 2328 раз
 
Re: Вывести аватар по прямому урлу
Для безопасности
Сейчас известных уязвимостей нет, но нельзя исключить, что появится новая, и что встроена она будет в картинку (как уже не раз было). Без прямого доступа к файлам в том случае загруженный файл всё равно запустить не удастся, а описанный подход требует открытия именно прямого доступа
- 
				AlexOo
 - phpBB 2.0.1
 - Сообщения: 293
 - Стаж: 12 лет 5 месяцев
 - Благодарил (а): 88 раз
 - Поблагодарили: 11 раз
 
Re: Вывести аватар по прямому урлу
Убедили. Но не проще ли этот вопрос решать в моменте загрузки авы на сервер, чтобы не городить подобный огород ?
			
			
									
						- 
				Татьяна5
														 - Поддержка

 - Сообщения: 12855
 - Стаж: 14 лет 2 месяца
 - Благодарил (а): 160 раз
 - Поблагодарили: 2328 раз
 
Re: Вывести аватар по прямому урлу
AlexOo, он и решается в том моменте. Работает против известных подходов. А против неизвестных?
			
			
									
						- 
				Nekstati
														 - Поддержка

 - Сообщения: 3336
 - Стаж: 16 лет 7 месяцев
 - Благодарил (а): 17 раз
 - Поблагодарили: 561 раз
 
Re: Вывести аватар по прямому урлу
А чего все их так боятся? Это же не ядро ОС, которое потом надо компилировать с 100-й попытки.
Если хотите, пишите расширение, там есть подходящий event.
А меня не убедили. Весь мир (Wordpress, например) отдаёт файло по прямым ссылкам и не парится, а здесь какая-то абстрактная перестраховка. Которая, между прочим, жрёт ресурсы. Каждая аватара дёргает всю машинерию форума с базой данных, расширениями и т.д.
- 
				ReXtor
														 - phpBB 2.0.0
 - Сообщения: 232
 - Стаж: 3 года 2 месяца
 - Откуда: Сибирь
 - Благодарил (а): 64 раза
 - Поблагодарили: 66 раз
 
Re: Вывести аватар по прямому урлу
Именно поэтому у phpBB нет известных уязвимостей, не так ли?Nekstati писал(а): 19.02.2024 4:10 Весь мир (Wordpress, например) отдаёт файло по прямым ссылкам и не парится, а здесь какая-то абстрактная перестраховка.
Отправлено спустя 2 минуты 56 секунд:
Весьма странно слышать про правки ядра от "Поддержки" о_О
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
			
						- 
				Nekstati
														 - Поддержка

 - Сообщения: 3336
 - Стаж: 16 лет 7 месяцев
 - Благодарил (а): 17 раз
 - Поблагодарили: 561 раз
 
Re: Вывести аватар по прямому урлу
ReXtor, если поддержка в вашем представлении состоит в том, чтобы на каждый чих писать новое расширение, то никакая поддержка писать его, разумеется, не будет. Писать его будет сам пользователь. Ну или платить писателю. Поддержка тогда лишается всякого смысла - готовые расширения можно искать через Гугл, а новые заказывать на биржах.
			
			
									
						- 
				ReXtor
														 - phpBB 2.0.0
 - Сообщения: 232
 - Стаж: 3 года 2 месяца
 - Откуда: Сибирь
 - Благодарил (а): 64 раза
 - Поблагодарили: 66 раз
 
Re: Вывести аватар по прямому урлу
На каждый чих лезть в ядро - тоже такое себе. Загоняем сами себя в угол ведь. Вроде уже проходили проблему "ручных" правок в прошлых версиях с модами...
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
			
						- 
				Татьяна5
														 - Поддержка

 - Сообщения: 12855
 - Стаж: 14 лет 2 месяца
 - Благодарил (а): 160 раз
 - Поблагодарили: 2328 раз
 
Re: Вывести аватар по прямому урлу
Взламывается даже мимопроходящими школьниками. Сама была тому свидетелем
- 
				southklad
														 - phpBB 3.1.0 RC4
 - Сообщения: 3405
 - Стаж: 13 лет 9 месяцев
 - Благодарил (а): 698 раз
 - Поблагодарили: 171 раз
 
- 
				Michel
														 - phpBB 2.0.5
 - Сообщения: 463
 - Стаж: 13 лет 9 месяцев
 - Откуда: Липецк
 - Благодарил (а): 130 раз
 - Поблагодарили: 56 раз
 
Re: Вывести аватар по прямому урлу
Ну тут вопрос стоит совсем иначе. Сайт на много важнее. Это публичная деятельность. Где если подменят платёжную систему на сайте или более того получат доступ к личным данным пользователей, мало не покажется. Ядро операционной системы покажется детским лепетом.Nekstati писал(а): 19.02.2024 4:10 А чего все их так боятся? Это же не ядро ОС, которое потом надо компилировать с 100-й попытки.
Именно поэтому уже столько лет дружу с PHPBB.Татьяна5 писал(а): 19.02.2024 5:29 Взламывается даже мимопроходящими школьниками. Сама была тому свидетелем
+100500
phpBB 3.3.15 • php 8.4.7 • MySQL(i) 8.0.25-15
			
						
