案例一:自建lsky 使用1panel防火墙自定义规则通过匹配正则表达式实现仅可访问/i和/lsky 目录
注意:这里的lsky的服务是是使用的反代,反代,这里是用的反向代理,如果你有疑问,可以留言,看到会解答。
本站使用的是私人NAS自建的Lsky图床
通过本地1panel反向代理出来,
由于外网并不安全,为了以绝后患,防止各种破解,我们可以使用1pane专业版防火墙的自定义规则,
这里我使用的是正则匹配URL,这里本地使用的1panel也要拥有waf,也就是专业版
准备创建规则
-
点击 高级功能-waf
-
点击 网站设置
-
选择 网站-lsky(反代)
-
点击 自定义规则
-
点击 开启
-
点击 创建
填写规则
填写 名称
选择 匹配对象-URL
选择 匹配条件-正则表达式
填写 匹配内容(正则不会写用AI帮你写)“写一个正则表达式,要求同时排除以 /i 和 /lsky 开头的路径”
选择 动作-禁止
选择 返回状态码
通过新增一条匹配对象是url,条件使用正则表达式,匹配的内容是^(?!(/i|/lsky)).* 意思是排除以 "/i" 或 "/lsky" 开头的URL路径。这样配置后,防火墙会禁止访问所有不包含这两个目录路径的URL请求。
验证
访问站点内的图片则显示正常,直接访问lsky登录url则返回无法访问
坑点
要注意给自己服务器增加一个白名单
正常事这样的
Lsky插件是要服务器通过API与本地链接,因此会有访问,如果你不开白名单的话就会出现下面的问题
无法正确的访问,无论是验证,上传,删除,都不可以。
案例二:自建maxkb 使用自定义规则通过匹配正则表达式实现访问限制
仅可访问目录:/api和/ui
设置条件匹配对象为URL,使用正则表达式^(?!(/api|/ui)).\*来禁止访问除/api和/ui目录以外的所有路径,
禁止访问登陆地址 :/ui/login
设设置条件匹配对象为URL,当路径为`/ui/login`时,禁止访问登录入口界面。这样配置后,防火墙将禁止直接访问登录页面,只能通过白名单中的网址进行访问。
禁止通过直链直接访问maxkb
此方法配合maxKB内访问限制 白名单
可以限制仅在白名单中的网址访问,无法通过直接访问
置条件匹配对象为URL,当路径=/ui/chat ,并且header的Sec-Fetch-Dest=document
(如果访问的路径并且不是通过document访问则无法访问),这个是请求标头的中的信息来匹配
这里单独一条规则使用多条匹配对象是且,而不是或。