Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Вывести аватар по прямому урлу
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Вывести аватар по прямому урлу
Всем привет.
Пользовательские авараты лежат в папке /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 аватара.
Выговорился )))
-
- Поддержка
- Сообщения: 3336
- Стаж: 15 лет 1 месяц
- Благодарил (а): 25 раз
- Поблагодарили: 590 раз
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";
}
Re: Вывести аватар по прямому урлу
Nekstati,
1. Почему бессмысленное ? Зная ID пользователя можно просто условием "if ... to ... else" вывести аватарку, просто сравнивая ID пользователя и имя аватары
2. Без правок ядра я так понимаю никак ?
1. Почему бессмысленное ? Зная ID пользователя можно просто условием "if ... to ... else" вывести аватарку, просто сравнивая ID пользователя и имя аватары
2. Без правок ядра я так понимаю никак ?
-
- Поддержка
- Сообщения: 12454
- Стаж: 12 лет 9 месяцев
- Благодарил (а): 166 раз
- Поблагодарили: 2482 раза
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
Я просто не очень улавливаю логику. Возможно сможете пролить свет на все это добро ...
-
- Поддержка
- Сообщения: 12454
- Стаж: 12 лет 9 месяцев
- Благодарил (а): 166 раз
- Поблагодарили: 2482 раза
Re: Вывести аватар по прямому урлу
Для безопасности
Сейчас известных уязвимостей нет, но нельзя исключить, что появится новая, и что встроена она будет в картинку (как уже не раз было). Без прямого доступа к файлам в том случае загруженный файл всё равно запустить не удастся, а описанный подход требует открытия именно прямого доступа
Re: Вывести аватар по прямому урлу
Убедили. Но не проще ли этот вопрос решать в моменте загрузки авы на сервер, чтобы не городить подобный огород ?
-
- Поддержка
- Сообщения: 12454
- Стаж: 12 лет 9 месяцев
- Благодарил (а): 166 раз
- Поблагодарили: 2482 раза
Re: Вывести аватар по прямому урлу
AlexOo, он и решается в том моменте. Работает против известных подходов. А против неизвестных?
-
- Поддержка
- Сообщения: 3336
- Стаж: 15 лет 1 месяц
- Благодарил (а): 25 раз
- Поблагодарили: 590 раз
Re: Вывести аватар по прямому урлу
А чего все их так боятся? Это же не ядро ОС, которое потом надо компилировать с 100-й попытки.
Если хотите, пишите расширение, там есть подходящий event.
А меня не убедили. Весь мир (Wordpress, например) отдаёт файло по прямым ссылкам и не парится, а здесь какая-то абстрактная перестраховка. Которая, между прочим, жрёт ресурсы. Каждая аватара дёргает всю машинерию форума с базой данных, расширениями и т.д.
-
- phpBB 2.0.0
- Сообщения: 232
- Стаж: 1 год 8 месяцев
- Откуда: Сибирь
- Благодарил (а): 66 раз
- Поблагодарили: 75 раз
Re: Вывести аватар по прямому урлу
Именно поэтому у phpBB нет известных уязвимостей, не так ли?
Отправлено спустя 2 минуты 56 секунд:
Весьма странно слышать про правки ядра от "Поддержки" о_О
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
-
- Поддержка
- Сообщения: 3336
- Стаж: 15 лет 1 месяц
- Благодарил (а): 25 раз
- Поблагодарили: 590 раз
Re: Вывести аватар по прямому урлу
ReXtor, если поддержка в вашем представлении состоит в том, чтобы на каждый чих писать новое расширение, то никакая поддержка писать его, разумеется, не будет. Писать его будет сам пользователь. Ну или платить писателю. Поддержка тогда лишается всякого смысла - готовые расширения можно искать через Гугл, а новые заказывать на биржах.
-
- phpBB 2.0.0
- Сообщения: 232
- Стаж: 1 год 8 месяцев
- Откуда: Сибирь
- Благодарил (а): 66 раз
- Поблагодарили: 75 раз
Re: Вывести аватар по прямому урлу
На каждый чих лезть в ядро - тоже такое себе. Загоняем сами себя в угол ведь. Вроде уже проходили проблему "ручных" правок в прошлых версиях с модами...
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
-
- Поддержка
- Сообщения: 12454
- Стаж: 12 лет 9 месяцев
- Благодарил (а): 166 раз
- Поблагодарили: 2482 раза
Re: Вывести аватар по прямому урлу
Взламывается даже мимопроходящими школьниками. Сама была тому свидетелем
-
- phpBB 3.1.0 RC2
- Сообщения: 3236
- Стаж: 12 лет 4 месяца
- Благодарил (а): 704 раза
- Поблагодарили: 153 раза
-
- phpBB 2.0.1
- Сообщения: 251
- Стаж: 12 лет 4 месяца
- Откуда: Липецк
- Благодарил (а): 72 раза
- Поблагодарили: 25 раз
Re: Вывести аватар по прямому урлу
Ну тут вопрос стоит совсем иначе. Сайт на много важнее. Это публичная деятельность. Где если подменят платёжную систему на сайте или более того получат доступ к личным данным пользователей, мало не покажется. Ядро операционной системы покажется детским лепетом.
Именно поэтому уже столько лет дружу с PHPBB.
+100500