Discuz教程网

discuz新增 UCenter添加OnlyRemoteAddr属性

[复制链接]
authicon dly 发表于 2019-1-13 15:36:33 | 显示全部楼层 |阅读模式
考虑到近期针对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')) {
  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. }
复制代码


游客,如果您要查看本帖隐藏内容请回复





上一篇:diacuzHTTPS教程,最新版DiscuzX3.4 SSL全站HTTPS化,网址栏全绿色
下一篇:修复discuz论坛首页formhash缓存导致游客搜索功能报错
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2024-4-30 11:36

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表