关于phpbb登录验证问题,IP限制

phpBB 3.2.X 相关的使用、安装等话题
版面规则
《发帖时,请复制下列格式文本,提供完整的信息,勿简略发布》


###### 以下为“基本的提问格式” ######
  • 主机操作系统: Windows (XP, 7, 8, 10)、Linux(Redhat,Centos, Mandrake等等)、或者其他的(请务必注明版本)
  • 快速架站程序: AppServ、XAMPP 等等(请务必注明版本号)
  • 您的上网方式:ADSL、Cable、FTTB等等 (请务必留下 ISP 名称或 ISP 官网)
  • 您安装的程序: Apache + php + MySQL 或者其他的组合 (请务必留下版本号,如果使用上面的快速架站程序就不必写了)
  • 您的 phpBB 版本: phpBB 3.2.2
  • 您的域名: 比如 phpbbchinese.com
  • 您的 phpBB 网址: 比如 https://www.phpbbchinese.com/
###### 以上为“基本的提问格式” ######

  • 安装扩展: 请注明安装扩展的名称,版本以及参考链接(非扩展问题免填)
  • 安装风格: 请注明安装的风格名称,版本以及参考链接(非风格问题免填)
  • 错误代码: 请使用 Code 标签将错误代码标识出来,如下:

代码: 全选

错误代码
  • 错误状态:如果没有错误代码,请直接贴出截图,或者是详细叙述错误状态内容。
备注:
如果需要,请提供测试用的账号与密码
若是管理账号,请使用短信联系站长
回复
baoang
注册用户
注册用户
Rank 5
Rank 5
帖子: 30
注册时间: 2018年3月28日 21:22

关于phpbb登录验证问题,IP限制

帖子 baoang » 2019年1月8日 22:40

借本贴提问一个相关问题。

对于楼主的问题我是这样的思路,我在用Apache时,就在配置中规定进管理员后台系统/adm/时只能经由固定的IP地址,通过这样的方法来提升安全性。

但是在Nginx服务器下,我采用同样的思路却失败了。

在Nginx的服务器配置/模块介绍中,有这样的一个模块,叫ngx_http_access_module,它的用法官方举例如下:

代码: 全选

location / {
    deny  192.168.1.1;
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;
    deny  all;
}
于是我就这样写配置文件:

代码: 全选

location /adm/index.php\?(.*) {
    #假设允许IP为1.2.3.4可登录管理员后台
    allow  1.2.3.4;
    deny   all;
}
我配置完成之后,重新启动Nginx,却发现失败了,无论从什么IP地址访问管理员后台,均能够进入,而不是如事前想的那样,仅从1.2.3.4才可进入。

不知站长是否也用Nginx,这个配置按说不会有错,可否指点一下?



头像
davidyin
网站管理员
网站管理员
Medal 3
Medal 3
帖子: 909
注册时间: 2015年11月19日 01:50
联系:

Re: 关于phpbb登录验证问题

帖子 davidyin » 2019年1月9日 17:30

没看出问题。
要不你贴一下 nginx -V 看看模块有没有。

直接用目录呢?

代码: 全选

location /adm/  {
    #假设允许IP为1.2.3.4可登录管理员后台
    allow  1.2.3.4;
    deny   all;
}
居住在西八区,有时差,提问请按照“通用提问格式”提问,未必能及时回复,见谅。
提供 phpBB 服务

baoang
注册用户
注册用户
Rank 5
Rank 5
帖子: 30
注册时间: 2018年3月28日 21:22

Re: 关于phpbb登录验证问题

帖子 baoang » 2019年1月9日 21:15

davidyin 写了:
2019年1月9日 17:30
没看出问题。
要不你贴一下 nginx -V 看看模块有没有。

直接用目录呢?

代码: 全选

location /adm/  {
    #假设允许IP为1.2.3.4可登录管理员后台
    allow  1.2.3.4;
    deny   all;
}
多谢站长及时回复。
之前通过查询Nginx官方的说法(即它的安装配置说明),这个http_access_module是默认编译安装进去的,除非编译参数中选择了不加入。
--without-http_access_module
disables building the ngx_http_access_module module that allows limiting access to certain client addresses.
直接用目录的话,假设如此

代码: 全选

location /adm/ 
,访问时也访问,假如 https://phpbbchinese.com/adm,则的确无法访问,但以管理员身份登录进去后,再访问后台管理面板,则发现居然又进去了,因此才想是否要在/adm/之后多增加一串字符。因为如果管理员账号被窃,进入后台往往不会直接访问 https://phpbbchinese.com/adm/ 这个地址。

这个挺奇怪,我发现如果用Apache 则没这个问题,一堵就堵死了,管理员也登录不了。

回复