Как создать фильтр HTTP-запросов, используя nginx и / или python? - PullRequest
0 голосов
/ 28 января 2020

Я новичок в веб-программировании и хочу спросить руководство или указания. Я немного искал, но ни одна из технических статей не отвечает моим конкретным c потребностям:

Я создаю приложение, в котором пользователи могут отправлять картинки и делать забавные изменения на картинке. в настоящее время у меня есть две виртуальные машины в облаке:

пользователь ------> Router_Server --------> Application_Server

Все запросы http будут go через Сервер маршрутизатора сначала для некоторой проверки личности и аутентификации. Служба nginx работает на сервере маршрутизатора.

Сервер приложений - это то место, где сохраняются изображения, и где применяется алгоритм настройки изображений.

В настоящее время мультитенантный механизм не реализован. если пользователь A аутентифицирован для посещения сервера приложений, то он может просматривать фотографии пользователя B, если у него правильный URL-адрес, который легко угадать.

Я хочу создать таблицу MySQL в маршрутизаторе, перечисляя идентификатор пользователя и идентификатор фотографии, которой он / она владеет. Если пользователь A пытается отправить http-запрос на просмотр фотографии, которая ему не принадлежит, или посетить URL-адрес, содержащий идентификатор фотографии других людей, nginx должен просто вернуть ему 403.

Я собираюсь написать скрипт python, который:

  1. Когда пользователь отправляет фотографию, мы получаем идентификатор пользователя и идентификатор фотографии из http запрос и обновите таблицу MySQL с помощью user_id и photo_id.

  2. Когда пользователь запрашивает просмотр фотографии, мы проверяем таблицу, чтобы узнать, принадлежит ли ей идентификатор фотографии в http-запросе. Если да, мы передаем http-запрос на сервер приложений; если нет, мы возвращаем 403 пользователю.

Я новичок в nginx. Можно ли интегрировать такой модуль python / mysql в конфигурацию nginx? Или я иду в неправильном направлении, чтобы подойти к этой проблеме?

...