Bug 43301 - Просмотр приложенных к багу изображений в браузере
Summary: Просмотр приложенных к багу изображений в браузере
Status: CLOSED FIXED
Alias: None
Product: Infrastructure
Classification: Infrastructure
Component: bugzilla.altlinux.org (show other bugs)
Version: unspecified
Hardware: x86 Linux
: P5 normal
Assignee: Олег Соловьев
QA Contact: Andrey Cherepanov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-07-20 23:14 MSK by Vitaly Chikunov
Modified: 2022-10-04 18:06 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Chikunov 2022-07-20 23:14:35 MSK
Есть ла возможность сделать так, чтоб приложенные изображения просматривались в браузере, а не скачивались? Это было бы гораздо удобнее (и например пользователю лишний раз проверить, что он приложил правильное изображение.)

Пример бага https://bugzilla.altlinux.org/43005

ps. Один из вариантов это поменять `Content-Disposition: attachment` для картинок на `inline` или вообще убрать его. Но, может можно сделать что-то еще лучше типа предпросмотра thumbnails.
Comment 1 Vitaly Chikunov 2022-09-08 13:04:34 MSK
То же самое могло бы быть и для текстовых вложений.

Например, здесь приложен лог файл в текстовом формате и который скачивается как un-def-5.19-on-NanoPC-T4.txt -- https://bugzilla.altlinux.org/43732

Всё это увеличило бы удобство пользования багзиллой имеющей не самый приятный пользовательский интерфейс.
Comment 2 Anton Farygin 2022-09-08 15:20:09 MSK
Олег, это же прекрасная идея, посмотри в фоне, можно ли что-то такое прикрутить как гляделку в браузере.

Там ещё и pdf можно точно смотреть.
Comment 3 Vitaly Chikunov 2022-09-08 15:24:17 MSK
Это даже не гляделка, а просто поменять 1 хедер "Content-Disposition:" в зависимости от Content-Type типа, который сейчас отдается правильно.

Например, в том баге хедеры такие

  < content-disposition: attachment; filename="=?UTF-8?Q?un-def-5=2E19-on-NanoPC-T4=2Etxt?="
  < content-type: text/plain; name="=?UTF-8?Q?un-def-5=2E19-on-NanoPC-T4=2Etxt?="; charset=

Вот из-за "content-disposition: attachment" и происходит скачка вместо просмотра.
Comment 4 Anton Farygin 2022-09-08 15:34:14 MSK
А, так это вообще про другое.
Да, Олег, это выглядит быстрым исправлением, почини пожалуйста.
Comment 5 Олег Соловьев 2022-09-08 15:38:26 MSK
Вы слишком глубоко копаете

allow_attachment_display
    If this option is on, users will be able to view attachments from their browser, if their browser supports the attachment's MIME type. If this option is off, users are forced to download attachments, even if the browser is able to display them.

    If you do not trust your users (e.g. if your Bugzilla is public), you should either leave this option off, or configure and set the :param:`attachment_base` parameter (see below). Untrusted users may upload attachments that could be potentially damaging if viewed directly in the browser.

attachment_base
    When the :param:`allow_attachment_display` parameter is on, it is possible for a malicious attachment to steal your cookies or perform an attack on Bugzilla using your credentials.

    If you would like additional security on attachments to avoid this, set this parameter to an alternate URL for your Bugzilla that is not the same as :param:`urlbase` or :param:`sslbase`. That is, a different domain name that resolves to this exact same Bugzilla installation.

    Note that if you have set the :param:`cookiedomain` parameter, you should set :param:`attachment_base` to use a domain that would not be matched by :param:`cookiedomain`.

    For added security, you can insert ``%bugid%`` into the URL, which will be replaced with the ID of the current bug that the attachment is on, when you access an attachment. This will limit attachments to accessing only other attachments on the same bug. Remember, though, that all those possible domain names (such as 1234.your.domain.com) must point to this same Bugzilla instance. To set this up you need to investigate wildcard DNS.
Comment 6 Олег Соловьев 2022-09-08 15:46:19 MSK
Пока можно allow_attachment_display поставить в 1 и тогда можно будет просматривать вложения в браузере.

pdf - в отдельной вкладке, не скачивая.


Но появляется риск "тибринга" кук специально оформленными вложениями, для этого можно будет сделать ещё и attachment_base. Например, https://attach.bugzilla.altlinux.org/
Comment 7 Vitaly Chikunov 2022-09-08 17:25:20 MSK
1. Что такое "тибринг кук" я не знаю и не нагуглилось.
2. Я говорил только о картинках и текстовых файлах. Хотя pdf тоже хорошая идея.
3. Не слышал, чтоб текстовыми файлами можно было взломать браузер или поменять куки.
4. Картиночных сайтов так же полно и вроде бы не было последнее время взломов через картинки (хотя в древности они были). Все равно картинку потом открыть через браузер или через еще менее защищенное приложение просмотрщика картинок (без сандбоксинга и которое кодит 1 энтузиаст, а не гугл).
5. PDF сейчас через браузер просматривать так же безопаснее всего.
Comment 8 Олег Соловьев 2022-09-08 17:33:46 MSK
(In reply to Vitaly Chikunov from comment #7)
> 1. Что такое "тибринг кук" я не знаю и не нагуглилось.

по-русски: "украсть печеньку".
Чем полезна её подмена -- я не представляю, но кража печенек для меня вполне понятная атака.
Comment 9 Vitaly Chikunov 2022-09-08 18:07:59 MSK
Да кража куки я поняло. Но как её сделать через текстовое вложение или обычные картинки не знаю. Какие-то необычные вложения со скритптовыми языками, типа svg, конечно не надо разрешать.
Comment 10 Vitaly Chikunov 2022-09-08 18:08:30 MSK
Опечатка - "я понял").
Comment 11 Vitaly Chikunov 2022-09-08 18:12:58 MSK
Ну вот раз авторы багзиллы считают, что включать "allow_attachment_display" не безопасно -- значит это нельзя включать! А лучше сделать "глубже" и в то же время проще -- только для определенных content-types заменять Content-Disposition attachment на inline.
Comment 12 Vitaly Chikunov 2022-09-08 18:23:44 MSK
Им (авторам багзиллы) виднее, потому что, возможно, "allow_attachment_display" разрешает и просмотр _всех_ типов вложений, включая, скажем, text/html, а там уже полный доступ к кукам. Я же предлагал изначальное разрешать только для некоторых безопасных типов, а разрешать для всех видов вложение даже и не думал предлагать.
Comment 13 Олег Соловьев 2022-09-08 18:43:27 MSK
(In reply to Vitaly Chikunov from comment #12)
> Им (авторам багзиллы) виднее, потому что, возможно,
> "allow_attachment_display" разрешает и просмотр _всех_ типов вложений,
> включая, скажем, text/html, а там уже полный доступ к кукам. Я же предлагал
> изначальное разрешать только для некоторых безопасных типов, а разрешать для
> всех видов вложение даже и не думал предлагать.

А рядом настройка attachment_base, которая поменяет домен с аттачами и украсть печеньку не выйдет
Comment 14 Anton Farygin 2022-09-08 18:49:07 MSK
т.е. - нужно сделать отдельный домен для attach и включить обе настойки.
Comment 15 Олег Соловьев 2022-09-08 18:54:03 MSK
(In reply to Anton Farygin from comment #14)
> т.е. - нужно сделать отдельный домен для attach и включить обе настойки.

багзилла позволяет ещё туда bugid добавить, чтобы было 43301.bugattach.altlinux.org
Comment 16 Dmitry V. Levin 2022-09-08 21:09:04 MSK
(In reply to Anton Farygin from comment #14)
> т.е. - нужно сделать отдельный домен для attach и включить обе настойки.

Вообще-то адрес attachments.bugzilla.a.o существует с 2009 года.
Comment 17 Олег Соловьев 2022-10-04 17:25:00 MSK
Пока используется attachments.b.a.o
Comment 18 Vitaly Chikunov 2022-10-04 18:06:52 MSK
(In reply to Олег Соловьев from comment #17)
> Пока используется attachments.b.a.o

Спасибо большое!