Foreground
除了搜索,其他基本上都要登陆了之后才能使用,评论、友联、留言板,如果后台没有开启,基本上前台就是纯“静态”
search
$q = str_replace('%', '', new_html_special_chars(strip_tags(trim($_GET['q']))));
一行代码的过滤,trim()
、strip_tags()
、str_replace('%', '')
的运用方式简直让我大开眼界了。。
comment
apply for friend links
表单并没有什么过滤,但是在入库的时候用的是一样的过滤。
message board
留言板,提交之后要经过管理员审核才会显示出来。
member
在线投稿
正文和摘要黑名单过滤了一些标签
修改资料
修改头像
public function user_pic(){
$memberinfo = $this->memberinfo;
extract($memberinfo);
if(isset($_POST['dosubmit'])){
$filename = $_FILES['user_pic']['name'];
if($filename == '') showmsg('请上传头像!');
$upload = yzm_base::load_sys_class('upload');
if($upload->uploadfile('user_pic')){
$fileinfo = $upload->getnewfileinfo();
$picname = $fileinfo['filepath'].$fileinfo['filename'];
D('member_detail')->update(array('userpic'=>$picname),array('userid'=>$this->userid));
$userpic = YZMPHP_PATH.ltrim($userpic, SITE_PATH);
if(is_file($userpic)) @unlink($userpic); //删除原来的头像
showmsg('更新头像成功!','',1);
}else{
showmsg($upload->geterrormsg());
}
}
include template('member', 'user_pic');
}
更改头像时,@unlink
可以把原来的头像删掉,如果我们再提交请求的时候抓包改一下路径,即可构成任意文件删除
,但是后台里面这个地方限制了文件后缀,所以危害瞬间咕咕咕。。。所以感觉前台那个unlink的任意文件删除,作者是知道的~
if(in_array(fileext($userpic), array('jpg', 'jpeg', 'png', 'gif')) && is_file($userpic)) @unlink($userpic);
修改密码
修改密码没有校验,理论上只需要知道userid
即可改别人的密码。
但是userid
只有在登陆的时候被写进session,而且要逆向出来,几乎不可能。
发信息
不能给管理员发信息。。因为不在同一个表里