проверить существование пользователя сайта с помощью curl и nginx - PullRequest
0 голосов
/ 15 марта 2020

На моем сайте зарегистрированные пользователи после входа в систему имеют возможность загружать файлы с помощью команды curl, например:

curl -O https://example.com /assets/file/test.txt

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

Я использую Nginx в качестве веб-сервера.

Можно ли заблокировать доступ пользователю, который больше не существует или больше не вошел в систему?

Я думал о возможности сделать что-то вроде этого:

curl -u {{user.id}}:{{unique_value}} https://example.com/assets/file/test.txt

или

curl -O https://example.com/assets/file/test.txt?param={{unique_value}}

Но я не знаю, как проверить существование пользователя и, если это возможно, с помощью nginx или другого инструмента.

Я пытался использовать элемент управления cook ie с помощью Nginx, но насколько я знаю, его легко обойти.

1 Ответ

0 голосов
/ 15 марта 2020

да, вы можете использовать http basi c auth, чтобы ограничить доступ к файлам авторизованным пользователям, согласно документации на https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/

touch /etc/nginx/users.htpasswd;
htpasswd /etc/nginx/users.htpasswd user1 'password';

, за которой следует

server {
        listen 80;
        listen [::]:80
        location /assets{
            root /wherever/assets/..;
            auth_basic           "assets";
            auth_basic_user_file /etc/nginx/users.htpasswd; 
        }
}

теперь только curl -u user1:password1 может загружать файлы в / assets /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...