使用Nginx内部指令限制直接访问服务器文件
Nginx internal指令用于限制客户端直接访问服务器上的文件。当使用internal指令时,Nginx会检查请求的URI是否与指定的内部URI匹配。如果匹配,则允许访问;否则,返回403禁止访问错误。这样可以防止恶意用户直接访问服务器上的敏感文件,提高网站安全性。例如,可以使用以下配置来限制对`/private`目录下的文件的直接访问: ``` location ~* ^/private { internal; } ``` 这样,只有当请求的URI以`/private`开头时,才能访问该目录下的文件。其他情况下,将返回403禁止访问错误。
internal指令功能介绍
Ngin的internal指令可以用来限制浏览器直接访问服务器内的资源文件,比如下载站服务器内的压缩包文件目录路径被用户用非法手段获取到,就可以不通过下载程序逻辑下载,直接访问路径+压缩包名称直接下载。
但是用了internal指令,直接用浏览器访问路径+压缩包名称,就会提示404无法访问,必须经过程序逻辑才能访问到文件。
internal指令使用方法
比如需要访问路径为/images/auth-pictures/内的图片资源,Ngin的internal指令配置方法如下:
location^~/images/auth-pictures/{internal;}
保存后重启 Nginx,直接访问 /images/auth-pictures/ 下的图片,会返回 404。
我们只能通过在响应头“X-Accel-Redirect” 域使请求重定向到真实的图片路径上面,才能正常访问到文件,方法如下:
<?php('Content-Type:'.('./images/auth-pictures/'.$name)['mime']);('X-Accel-Redirect:/images/auth-pictures/'.$name);die;相关专题