·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

discuz新增 UCenter添加OnlyRemoteAddr属性

579 2
发表于 2020-7-8 10:15:42 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
考虑到近期针对UCenter的密码穷举攻击增多,而UCenter默认接受代理IP的设置又让UCenter的密码错误次数超限锁定的安全策略无法正常生效。

本PR借鉴Discuz!X程序做法,为UCenter、UC_Client添加了OnlyRemoteAddr属性,在开启的情况下仅接受来自于TCP/IP协议栈的远程地址,保证密码错误次数超限锁定的安全策略正常生效。

由于此选项属于新功能(不破坏UC兼容性),因此是否合并还需综合考虑。

使用方法:按PR修改相关程序代码后,在UCenter配置文件(uc_server/data/config.inc.php)及uc_client/uc_client.php中添加以下代码即可开启。
  1. define(<font color="rgb(221, 17, 68)">'UC_ONLYREMOTEADDR'</font>, true);
复制代码
打开 uc_client/model/base.php 和 uc_server/model/base.php
找到
  1. if($cip && strcasecmp($cip, 'unknown')) {       $this->onlineip = $cip;} elseif($xip && strcasecmp($xip, 'unknown')) {       $this->onlineip = $xip;} elseif($rip && strcasecmp($rip, 'unknown')) {       $this->onlineip = $rip;} elseif($srip && strcasecmp($srip, 'unknown')) {       $this->onlineip = $srip;}
复制代码
替换为
  1. if (defined('UC_ONLYREMOTEADDR') && constant('UC_ONLYREMOTEADDR')==true) {      $this->onlineip = $srip;} else {      if($cip && strcasecmp($cip, 'unknown')) {           $this->onlineip = $cip;      } elseif($xip && strcasecmp($xip, 'unknown')) {           $this->onlineip = $xip;      } elseif($rip && strcasecmp($rip, 'unknown')) {           $this->onlineip = $rip;      } elseif($srip && strcasecmp($srip, 'unknown')) {           $this->onlineip = $srip;      }}
复制代码
我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

Discuz智能体Lv.8 发表于 2025-3-17 01:55:05 | 查看全部
为了增强UCenter的安全性,防止密码穷举攻击,您可以通过添加`OnlyRemoteAddr`属性来限制UCenter仅接受来自TCP/IP协议栈的远程地址。这样可以确保密码错误次数超限锁定的安全策略能够正常生效。以下是具体的实现步骤:

### 1. 修改UCenter配置文件
在UCenter的配置文件`uc_server/data/config.inc.php`中添加以下代码:

  1. define('UC_ONLYREMOTEADDR', true);
复制代码


### 2. 修改UC_Client配置文件
在`uc_client/uc_client.php`中添加以下代码:

  1. define('UC_ONLYREMOTEADDR', true);
复制代码


### 3. 修改`uc_client/model/base.php`文件
打开`uc_client/model/base.php`文件,找到以下代码:

  1. if($cip && strcasecmp($cip, 'unknown')) {
  2.     $this->onlineip = $cip;
  3. } elseif($xip && strcasecmp($xip, 'unknown')) {
  4.     $this->onlineip = $xip;
  5. } elseif($rip && strcasecmp($rip, 'unknown')) {
  6.     $this->onlineip = $rip;
  7. } elseif($srip && strcasecmp($srip, 'unknown')) {
  8.     $this->onlineip = $srip;
  9. }
复制代码


将其替换为:

  1. if (defined('UC_ONLYREMOTEADDR') && constant('UC_ONLYREMOTEADDR') == true) {
  2.     $this->onlineip = $srip;
  3. } else {
  4.     if($cip && strcasecmp($cip, 'unknown')) {
  5.         $this->onlineip = $cip;
  6.     } elseif($xip && strcasecmp($xip, 'unknown')) {
  7.         $this->onlineip = $xip;
  8.     } elseif($rip && strcasecmp($rip, 'unknown')) {
  9.         $this->onlineip = $rip;
  10.     } elseif($srip && strcasecmp($srip, 'unknown')) {
  11.         $this->onlineip = $srip;
  12.     }
  13. }
复制代码


### 4. 修改`uc_server/model/base.php`文件
打开`uc_server/model/base.php`文件,找到以下代码:

  1. if($cip && strcasecmp($cip, 'unknown')) {
  2.     $this->onlineip = $cip;
  3. } elseif($xip && strcasecmp($xip, 'unknown')) {
  4.     $this->onlineip = $xip;
  5. } elseif($rip && strcasecmp($rip, 'unknown')) {
  6.     $this->onlineip = $rip;
  7. } elseif($srip && strcasecmp($srip, 'unknown')) {
  8.     $this->onlineip = $srip;
  9. }
复制代码


将其替换为:

  1. if (defined('UC_ONLYREMOTEADDR') && constant('UC_ONLYREMOTEADDR') == true) {
  2.     $this->onlineip = $srip;
  3. } else {
  4.     if($cip && strcasecmp($cip, 'unknown')) {
  5.         $this->onlineip = $cip;
  6.     } elseif($xip && strcasecmp($xip, 'unknown')) {
  7.         $this->onlineip = $xip;
  8.     } elseif($rip && strcasecmp($rip, 'unknown')) {
  9.         $this->onlineip = $rip;
  10.     } elseif($srip && strcasecmp($srip, 'unknown')) {
  11.         $this->onlineip = $srip;
  12.     }
  13. }
复制代码


### 5. 保存并测试
完成上述修改后,保存文件并测试UCenter的功能,确保一切正常。

### 注意事项
- 该修改不会破坏UCenter的兼容性,但建议在修改前备份相关文件,以防出现问题。
- 如果您的站点使用了CDN或其他代理服务,开启`OnlyRemoteAddr`可能会导致部分功能异常,请根据实际情况进行调整。

通过以上步骤,您可以有效增强UCenter的安全性,防止密码穷举攻击。如果您有其他问题或需要进一步的帮助,请随时联系DZ插件网的技术支持团队。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-20 12:00:03 | 查看全部
为了增强UCenter的安全性,防止密码穷举攻击,您可以通过添加`OnlyRemoteAddr`属性来限制UCenter仅接受来自TCP/IP协议栈的远程地址。这样可以确保密码错误次数超限锁定的安全策略能够正常生效。以下是具体的实现步骤:

### 1. 修改UCenter配置文件
在UCenter的配置文件`uc_server/data/config.inc.php`中添加以下代码:

  1. define('UC_ONLYREMOTEADDR', true);
复制代码


### 2. 修改UC_Client配置文件
在`uc_client/uc_client.php`中添加以下代码:

  1. define('UC_ONLYREMOTEADDR', true);
复制代码


### 3. 修改`uc_client/model/base.php`和`uc_server/model/base.php`
在这两个文件中找到以下代码:

  1. if($cip && strcasecmp($cip, 'unknown')) {
  2.     $this->onlineip = $cip;
  3. } elseif($xip && strcasecmp($xip, 'unknown')) {
  4.     $this->onlineip = $xip;
  5. } elseif($rip && strcasecmp($rip, 'unknown')) {
  6.     $this->onlineip = $rip;
  7. } elseif($srip && strcasecmp($srip, 'unknown')) {
  8.     $this->onlineip = $srip;
  9. }
复制代码


将其替换为:

  1. if (defined('UC_ONLYREMOTEADDR') && constant('UC_ONLYREMOTEADDR')==true) {
  2.     $this->onlineip = $srip;
  3. } else {
  4.     if($cip && strcasecmp($cip, 'unknown')) {
  5.         $this->onlineip = $cip;
  6.     } elseif($xip && strcasecmp($xip, 'unknown')) {
  7.         $this->onlineip = $xip;
  8.     } elseif($rip && strcasecmp($rip, 'unknown')) {
  9.         $this->onlineip = $rip;
  10.     } elseif($srip && strcasecmp($srip, 'unknown')) {
  11.         $this->onlineip = $srip;
  12.     }
  13. }
复制代码


### 4. 解释代码逻辑
- `UC_ONLYREMOTEADDR`:这是一个常量,用于控制是否仅接受来自TCP/IP协议栈的远程地址。
- `$srip`:这是直接从TCP/IP协议栈获取的远程地址。
- 当`UC_ONLYREMOTEADDR`为`true`时,系统将仅使用`$srip`作为用户的IP地址,忽略其他可能的代理IP地址。

### 5. 注意事项
- 该修改不会破坏UCenter的兼容性,但建议在测试环境中先进行测试,确保无误后再应用到生产环境。
- 如果您的站点使用了CDN或其他代理服务,开启此选项可能会导致IP地址获取不准确,请根据实际情况决定是否开启。

### 6. 其他安全建议
除了上述修改,您还可以考虑以下安全措施:
- 定期更新UCenter和Discuz!到最新版本。
- 使用强密码策略,并启用双因素认证(2FA)。
- 定期检查服务器日志,监控异常登录行为。

通过以上步骤,您可以有效增强UCenter的安全性,防止密码穷举攻击。如果您有其他问题或需要进一步的帮助,请随时联系DZ插件网的技术支持团队。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.142.53.239,GMT+8, 2025-5-1 00:22 , Processed in 0.331286 second(s), 75 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表