discuz 修改禁止用户修改邮箱的方法

一开始官方里面有个帖子,只是修改模板,根本解决不了

需要修改两个文件

修改文件:
template\default\home\spacecp_profile.htm

查找
<input type=”text” name=”emailnew” id=”emailnew” value=”$space[email]” class=”px” />
复制代码
替换成
<input type=”text” name=”emailnew” id=”emailnew” value=”$space[email]” disabled />
复制代码
这样修改之后,发现修改邮箱的编辑框就不可用了,无法修改邮箱。

但是这样真的够了么?
这个方法只是从前端屏蔽往编辑框输入邮箱,但是我们完全可以用firebug之类工具修改编辑框的属性 ,把disabled属性去掉,就可以正常编辑了;甚至可以直接伪造数据包发给服务器,服务器端会乖乖给你修改的。

所以如果想彻底防止修改邮箱,必需在服务器端也做限制,具体方法:

修改文件:source\include\spacecp\spacecp_profile.php

查找
$emailnew = dhtmlspecialchars($_GET[’emailnew’]);
复制代码
替换为:
$emailnew = $_G[‘member’][’email’];
复制代码

详解Discuz! X3.4 X3.3 UC(/uc_server/data/tmp)上传执行漏洞修复

论坛有账号被盗,所以搜了一下,也许是这个漏洞

Discuz! X3.4 X3.3 UC(/uc_server/data/tmp)上传执行漏洞修复 (阿里云热修复补丁): 
介绍:在Discuz中,uc_key是UC客户端与服务端通信的通信密钥,discuz中的/api/uc.php存在代码写入漏洞,导致黑客可写入恶意代码获取uckey,最终进入网站后台,造成数据泄漏。 

漏洞名称: 
Discuz uc.key泄露导致代码注入漏洞 

站长报告:已有网站中招后/uc_server/data/tmp被上传shell 

补丁效果:目前已排除风险。 

站长报告漏洞文件路径:/api/uc.php 

手工修复方案: 
编辑: 
/api/uc.php 
查找:(39行) 
require_once ‘../source/class/class_core.php’; 
复制代码 
修改为: 
require_once ‘../source/class/class_core.php’; if (method_exists(“C”, “app”)) { $discuz = C::app(); $discuz->init(); } 
复制代码 

查找:(273行) 
function updateapps($get, $post) { 
复制代码 
修改为: 
function updateapps($get, $post) { if($post[‘UC_API’]) { $post[‘UC_API’] = addslashes($post[‘UC_API’]); } 
复制代码 

提示:千万别信dz应用中心的那个谁”无视阿里云,很早很早以前就修复了”,阿里云安骑士专业版提供的修复方案,放心使用。