Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[建议] 添加简单URL鉴权功能,实现后台登录或特定路径访问更隐秘安全 #276

Open
insilen opened this issue Sep 1, 2023 · 12 comments
Labels
enhancement New feature or request

Comments

@insilen
Copy link

insilen commented Sep 1, 2023

背景与遇到的问题

  1. 例如:
    雷池下站点abc.com 后台地址 abc.com/admin 想让它在不更改后端代码 而实现 一个特定URL才能访问,我只需要设置一个 简单token: safetoken123
    abc.com/admin/safetoken123 会回到 abc.com/admin 就能正常访问
    而不操作访问上面的URL 而直接访问 abc.com/admin 则无法访问 放回特定页面或错误

  2. 例如:
    当我把内网雷池UI管理通过雷池站点代理出来 https://test.com 就能直接访问到这个后台UI
    想让它在不更改后端代码 而实现 一个特定URL才能访问,我只需要设置一个 简单token: safetoken123
    使用 https://test.com 直接访问 返回特定页面或错误页面
    而使用 https://test.com/safetoken123 之后 会得到302 重新回到 https://test.com页面 这时候已经可以正常访问了

那么比如其他服务/wp-admin /admin 等服务也是使用该方案 就能在实现简单URL鉴权功能,实现后台登录其他路径访问更隐秘安全

建议的解决方案

该功能已在我的生产环境中得到实践和应用,我的实例如下:

server{
        ....
  
       location /ba4d5aaf-9d6f-c739-7698-65b6c7de2bca {
           add_header Set-Cookie "simple_token=ba4d5aaf-9d6f-c739-7698-65b6c7de2bca; Max-Age=86400";
           rewrite ^(.*)$ / redirect;
       }
       #加入了简单URL鉴权功能
       location / {
            if ($cookie_simple_token != "ba4d5aaf-9d6f-c739-7698-65b6c7de2bca") {  return 401; }
             proxy_pass https://$proxy_url:443;
             proxy_ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
             proxy_set_header  Host $host;
             proxy_set_header  X-Real-IP  $remote_addr;
             proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
             ...
            }

           ....
}

通过上面的配置 在访问路径/ba4d5aaf-9d6f-c739-7698-65b6c7de2bca的时候 加入了一个头部cookie名为simple_token,并且返回302回到原路径

在访问原路径的时候 会通过$cookie_simple_token的判断 符合则继续运行,不符合则返回401,以上实例在不修改后端代码的基础上通过nginx 来实现

以上需求需要在 server{}中添加配置,通过文档得知目前只支持到 location{}自定义,期待大家关注 也希望得到该请求~

@insilen insilen changed the title [建议] 添加简单URL鉴权功能,实现后台登录其他路径访问更隐秘安全 [建议] 添加简单URL鉴权功能,实现后台登录或特定路径访问更隐秘安全 Sep 1, 2023
@luweijun1992
Copy link

一般也不会把雷池管理UI界面映射到公网进行访问吧。

@H1447005189
Copy link

期待

@insilen
Copy link
Author

insilen commented Sep 1, 2023

一般也不会把雷池管理UI界面映射到公网进行访问吧。

当然了,我这只是举例说明; 那比如 CMS这些管理路径都是可探索的就还是有这方面需求了,能被雷池一个搞定自然是极好的

@0Knot
Copy link

0Knot commented Sep 1, 2023

我雷池下 一个站点 a.com 后台是 a.com/admin 如果有这个功能是不是可以 a.com/admin/ba4d5aaf-9d6f-c739-7698-65b6c7de2bca 来访问 然后又回到了 a.com/admin ?就正常访问了?

这个功能让我想起了宝塔面板的后台 也有一个类似的功能,如果能支持也是不错的嘛

@insilen
Copy link
Author

insilen commented Sep 1, 2023

我雷池下 一个站点 a.com 后台是 a.com/admin 如果有这个功能是不是可以 a.com/admin/ba4d5aaf-9d6f-c739-7698-65b6c7de2bca 来访问 然后又回到了 a.com/admin ?就正常访问了?

这个功能让我想起了宝塔面板的后台 也有一个类似的功能,如果能支持也是不错的嘛

可能我上面举例不是太完善,我说的正是雷池下的站点添加这个URL简单鉴权,我自己手搓的配置就是达到你说的这个效果的了

@Lorna0 Lorna0 added the enhancement New feature or request label Sep 1, 2023
@XIAOSAGE-XWT
Copy link

添加简单URL鉴权功能,实现后台登录或特定路径访问更隐秘安全

背景与遇到的问题

  1. 例如:
    雷池下站点abc.com 后台地址 abc.com/admin 想让它在不更改后端代码 而实现 一个特定URL才能访问,我只需要设置一个 简单token: safetoken123
    abc.com/admin/safetoken123 会回到 abc.com/admin 就能正常访问
    而不操作访问上面的URL 而直接访问 abc.com/admin 则无法访问 放回特定页面或错误
  2. 例如:
    当我把内网雷池UI管理通过雷池站点代理出来 https://test.com 就能直接访问到这个后台UI
    想让它在不更改后端代码 而实现 一个特定URL才能访问,我只需要设置一个 简单token: safetoken123
    使用 https://test.com 直接访问 返回特定页面或错误页面
    而使用 https://test.com/safetoken123 之后 会得到302 重新回到 https://test.com页面 这时候已经可以正常访问了

那么比如其他服务/wp-admin /admin 等服务也是使用该方案 就能在实现简单URL鉴权功能,实现后台登录其他路径访问更隐秘安全

建议的解决方案

该功能已在我的生产环境中得到实践和应用,我的实例如下:

server{
        ....
  
       location /ba4d5aaf-9d6f-c739-7698-65b6c7de2bca {
           add_header Set-Cookie "simple_token=ba4d5aaf-9d6f-c739-7698-65b6c7de2bca; Max-Age=86400";
           rewrite ^(.*)$ / redirect;
       }
       #加入了简单URL鉴权功能
       location / {
            if ($cookie_simple_token != "ba4d5aaf-9d6f-c739-7698-65b6c7de2bca") {  return 401; }
             proxy_pass https://$proxy_url:443;
             proxy_ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
             proxy_set_header  Host $host;
             proxy_set_header  X-Real-IP  $remote_addr;
             proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
             ...
            }

           ....
}

通过上面的配置 在访问路径/ba4d5aaf-9d6f-c739-7698-65b6c7de2bca的时候 加入了一个头部cookie名为simple_token,并且返回302回到原路径

在访问原路径的时候 会通过$cookie_simple_token的判断 符合则继续运行,不符合则返回401,以上实例在不修改后端代码的基础上通过nginx 来实现

以上需求需要在 server{}中添加配置,通过文档得知目前只支持到 location{}自定义,期待大家关注 也希望得到该请求~

附议,希望能增加此功能

@luweijun1992
Copy link

确实可以,类似安全入口。
对于雷池waf的管理UI界面只有管理员才会使用。
直接IP+端口访问,返回错误页面。
需要一个安全入口,比如:http://x.x.x.x:1443/safeline
首次需要上面url打开,输入动态验证码登录成功后直接使用:http://x.x.x.x:1443就可以打开。无需后面加上 /safeline

@jssolo
Copy link

jssolo commented Sep 5, 2023

支持,我是放到公网上了,为了安全我每次登录后台都需要再云服务器后台开放指定的端口给我的公网ip,但是公网ip一变就要重新设置,有安全入口这个功能的话就会放心不少

@linkangren
Copy link

支持这个功能,在群里面我昨天也说了,不然端口直接访问太不安全了

@xcoder119
Copy link

强烈期待能上线该功能!类似宝塔面板的安全入口一样,这样外部访问的安全性会更高。

@Lorna0
Copy link
Collaborator

Lorna0 commented Feb 5, 2024

4.3.0 更新了 防护配置->身份认证 功能,可以给站点配置用户密码登录,可以尝试一下能不能满足需要:
image

@insilen
Copy link
Author

insilen commented Feb 5, 2024

4.3.0 更新了 防护配置->身份认证 功能,可以给站点配置用户密码登录,可以尝试一下能不能满足需要: image

师傅辛苦了,这简直了诚意满满!满足满足满足满足满足满足。别说了 都在酒里🍺🍺🍺

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

9 participants