admin 发表于 2020-7-8 10:15:42

discuz新增 UCenter添加OnlyRemoteAddr属性

考虑到近期针对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中添加以下代码即可开启。
define(<font color="rgb(221, 17, 68)">'UC_ONLYREMOTEADDR'</font>, true);
打开 uc_client/model/base.php 和 uc_server/model/base.php
找到
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;}替换为 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;      }}
页: [1]
查看完整版本: discuz新增 UCenter添加OnlyRemoteAddr属性

创宇盾启航版免费网站防御网站加速服务