Nginx配置密码访问:以图床TelePic程序为例

70次阅读

共计 1367 个字符,预计需要花费 4 分钟才能阅读完成。

TelePic 是一款基于 telegra.ph 的 PHP 图床程序,参见 https://github.com/Fangsongs/TelePic 和 https://369369.xyz/host/topic/1152525.html 但是缺少密码和用户管理,导致任意使用者都能上传图片,使得缺少安全性。使用 Nginx 自带的密码访问功能,可以限制特定用户上传图片,但不会限制任意用户查看图片和阻止外链。以下以 Debian 系统为例,root 用户权限。安装 htpasswd 软件 apt updateapt install apache2-utils 复制代码生成访问密码 htpasswd -c /etc/nginx/password username # 此处的 username 可任意设置复制代码首次生成需要添加 -c,此后如果想添加更多的用户,则直接:htpasswd /etc/nginx/password another_username 复制代码编辑网站的 Nginx 配置文件个人习惯将网站的 Nginx 配置文件放到 /etc/nginx/sites-available 中,并将其软链接到 /etc/nginx/sites-enabled 中,此处以默认配置文件 /etc/nginx/sites-available/default 为例。找到 location / 位置,添加 auth_basic "Restricted Content"; 和 auth_basic_user_file /etc/nginx/.htpasswd; 两行配置,实际如下:location / {    auth_basic "Restricted Content";    auth_basic_user_file /etc/nginx/password;    try_files $uri $uri/ =404;} 复制代码完成后,使用 Nginx - t 检查文件是否正确,若没有报错,执行 systemctl reload nginx 重载 Nginx 即可。之后打开首页,需要输入用户名和密码才能访问。HOH 2023-05-19 11:20 2 又一个把这里当笔记本的 dvbhack 2023-05-19 11:27 3 为了生成个 HTTP Auth Basic 的密码还要单独去装 apache 工具包???用必备的 openssl 不就行了吗?OpenSSL passwd -apr1 复制代码 imes 2023-05-19 11:30 4dvbhack 发表于 2023-5-19 11:27 为了生成个 HTTP Auth Basic 的密码还要单独去装 apache 工具包???用必备的 openssl 不就行了吗?本来准备在 PHP 里面加个授权验证的,结果因为太懒,想到有 htpasswd 就直接用了 woniu 2023-05-19 11:31 5HOH 发表于 2023-5-19 11:20 又一个把这里当笔记本的你夸一句楼主是大佬 让他美滋滋不好吗?dvbhack 2023-05-19 11:32 6imes 发表于 2023-5-19 11:30 本来准备在 PHP 里面加个授权验证的,结果因为太懒,想到有 htpasswd 就直接用了 … 我说的是,在 nginx 里启用 http auth basic,需要生成密码文件,可以用 openssl 的 password 命令来生成,不需要额外安装 Apache 的工具包。不是说用 http 基础验证有什么问题。

正文完
 0