Как безопасно отправить изображение из бэкэнда для отображения в html-интерфейсе - PullRequest
1 голос
/ 20 сентября 2019

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

Как только пользователь аутентифицируется с помощью бэкэнда (JWT), как бэкэнд может безопасно отправить изображение для отображения пользователю?.

Я думаю, что для этого возможны два пути:

  1. Использование подписанного URL с тайм-аутом.Это также означает, что любой, кто найдет этот общедоступный URL-адрес в интервале времени ожидания, получит доступ к конфиденциальному изображению.Но, похоже, "фотографии Google" / Facebook работают таким образом.

  2. Отправьте изображение в вызове остальных в base64.Это также означает, что, если мы находимся в общественном месте, вызов может быть зарегистрирован на любом сервере и по-прежнему доступен через много лет.

Так что, есть предложения?!

1 Ответ

0 голосов
/ 20 сентября 2019

Вы можете добавить токен (возможно, даже JWT) к URL-адресу изображения src и проверить этот токен на серверной части перед тем, как подавать изображение.Тег img будет выглядеть примерно так:

<img src="https://path-to-image?token=securetoken">

Примечание. Я предполагаю, что вы используете https (а не http) для URL-адреса src, поэтому токен не может быть перехвачен.

...