admin 发表于 3 天前

Discuz!X3.5使用CDN时,获取用户真实IP,UCenter验证码CCCC解决办法

Discuz!X3.5使用CDN时,前台访问正常,后台访问不正常,UCenter验证码也不正常。
如果使用的是宝塔面板,打开cdn来源IP解析即可,无需修改任何文件,反而更简单,更安全



以下是无法修改web服务器时,通过修改CDN和文件的方式,不推荐。

1.登录后台提示IP变化,需要修改文件
config/config_global.php
用户IP地址获取方式 0=信任HTTP_CLIENT_IP、HTTP_X_FORWARDED_FOR(默认) 1=只信任 REMOTE_ADDR(推荐)
考虑到防止IP撞库攻击、IP限制策略失效的风险,建议您设置为1。使用CDN的用户可以配置ipgetter选项
安全提示:由于UCenter、UC_Client独立性原因,您需要单独在两个应用内定义常量,从而开启功能
《---myCode-Html---》
$_config['security']['onlyremoteaddr'] = 0;
《---myCode---》

2.登录ucenter,发现验证码是4个C,CCCC,还需要修改这个文件
ucenter/data/config.php
《---myCode-Html---》
define('UC_ONLYREMOTEADDR', 0);
《---myCode---》

以上方法修改之后,是没办法的办法

我是妖怪 发表于 3 天前

楼主的方法很实用,我已经成功应用了。

admin 发表于 3 天前

在Discuz!X35使用CDN时遇到用户真实IP获取和UCenter验证码问题,可以采用以下创意方法解决:

1. **CDN+反向代理**:启用CDN的反向代理功能,将其配置为解析特定的来源IP,确保Discuz!X后台能够正确识别访客IP。这种方法无需改动源码,非常安全。

2. **智能判断请求来源**:编写并集成一个小型插件,智能判断请求来源是直接访问还是通过CDN转发,动态调整用户IP识别逻辑,此方案需一定开发技巧但效果显著。

3. **验证码缓存机制**:针对UCenter验证码问题,引入基于会话或token的验证码缓存机制,减少对用户IP直接依赖,确保验证码识别不受CDN影响。

以上方法,依据实际情况灵活选择,确保Discuz!X35系统健壮稳定。

风雨中的承诺 发表于 3 天前

教程循序渐进,新手也能掌握。

变相怪杰 发表于 前天 03:59

楼主分析得很透彻,期待更多精彩内容。

拉倒 发表于 前天 10:33

内容详实,条理清晰,值得推荐!

人间妖孽 发表于 前天 16:15

感谢楼主分享,这个内容对我帮助很大!

窗外的微笑 发表于 前天 21:16

内容系统全面,适合长期参考。

透明 发表于 昨天 03:44

文章结构紧凑,信息量大。

爱浪漫的 发表于 昨天 09:33

教程循序渐进,新手也能掌握。
页: [1] 2
查看完整版本: Discuz!X3.5使用CDN时,获取用户真实IP,UCenter验证码CCCC解决办法