案例一:自建lsky 使用1panel防火墙自定义规则通过匹配正则表达式实现仅可访问/i和/lsky 目录

注意:这里的lsky的服务是是使用的反代,反代,这里是用的反向代理,如果你有疑问,可以留言,看到会解答。 本站使用的是私人NAS自建的Lsky图床

通过本地1panel反向代理出来,

由于外网并不安全,为了以绝后患,防止各种破解,我们可以使用1pane专业版防火墙的自定义规则,

这里我使用的是正则匹配URL,这里本地使用的1panel也要拥有waf,也就是专业版



准备创建规则

  1. 点击 高级功能-waf

  2. 点击 网站设置

  3. 选择 网站-lsky(反代)

  4. 点击 自定义规则

  5. 点击 开启

  6. 点击 创建



填写规则

填写 名称

选择 匹配对象-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访问则无法访问),这个是请求标头的中的信息来匹配 这里单独一条规则使用多条匹配对象是且,而不是或。