开源PHP网络验证 RainCms 2.2.0 20170510 不知这是Bug还是我配置的事
本帖最后由 天下 于 2017-10-9 22:30 编辑我在125.la上下载的作者发布的2.2.0版本的Raincms。
发现一个问题,我是小菜,大家可以测试下看看。是我配置的事还是真的有bug,还是作者故意放出来的版本。
我在我搭建的网站上随意注册了一个帐号,然后直接输入后台网址访问管理后台,竟然直接进去了。并且所有功能都可以操作。
开源不容易,我希望只是Bug而已。我在百度上搜索其它的搭建网站没有这种问题。但不知道版本是否跟我相同。。
下面这个代码。是作者在精易论坛放出的2.2.0版本的。文件路径:\apps\admin\controller\base.php
后台管理页面验证的。只验证了下是否登陆,我去,作者你要说你不是故意的我都不信。难道你不够专业吗?
<?php
namespace app\admin\controller;
use think\Session;
use think\Controller;
use think\Db;
use think\Request;
use think\auth\Auth;
use app\common\controller\Fn;
class Base extends controller {
public function _initialize() {
$request = Request::instance();
if(is_login()==FALSE){//是否登录
$this->redirect('home/Login/index');//跳转到登录页
}
$fn = new fn;
$node = $fn->getNode();
$Controller= $fn->getController();
$auth = new Auth();
$auths = $auth -> check(strtolower($node), Session('user.user_id'));
if(Session('user.user_id') == config('global_config.admin_id')){
$auths=TRUE;
}else{
}
$menu=new Menu();
$menu=$menu->menu();
$parent_id='';
//echo '<pre>';
//var_dump($menu);
foreach($menu as $key=>$val){
if($menu[$key]['url'] == $node){
$menu[$key]['class']='active';
$parent_id=$menu[$key]['parent_id'];
}
//echo $menu[$key]['url'].'='.$Controller.'<br>';
if(false !== strpos($menu[$key]['url'],$Controller)){
$parent_id=$menu[$key]['parent_id'];
}
}
$this->assign('parent_id',$parent_id);
$this->assign('menu',$menu);
}
}
下面是2.2.2版本的。从官网下的。修复过的。
<?php
namespace app\admin\controller;
use think\Session;
use think\Controller;
use think\Db;
use think\Request;
use think\auth\Auth;
use app\common\controller\Fn;
class Base extends controller {
public function _initialize() {
$request = Request::instance();
if(is_login()==FALSE){//是否登录
$this->redirect('home/Login/index');//跳转到登录页
}
$fn = new fn;
$node = $fn->getNode();
$Controller= $fn->getController();
$auth = new Auth();
$auths = $auth -> check(strtolower($node), Session('user.user_id'));
if(Session('user.user_id') == config('global_config.admin_id')){
$auths=TRUE;
}else{
}
//$auths==FALSE;
if($auths==FALSE){
if (Request::instance()->isAjax()){
echo '没有权限!';
exit;
}else{
$this->error('没有访问权限');
exit;
}
}
$menu=new Menu();
$menu=$menu->menu();
$parent_id='';
//echo '<pre>';
//var_dump($menu);
foreach($menu as $key=>$val){
if($menu[$key]['url'] == $node){
$menu[$key]['class']='active';
$parent_id=$menu[$key]['parent_id'];
}
//echo $menu[$key]['url'].'='.$Controller.'<br>';
if(false !== strpos($menu[$key]['url'],$Controller)){
$parent_id=$menu[$key]['parent_id'];
}
}
$this->assign('parent_id',$parent_id);
$this->assign('menu',$menu);
}
}
下面代码是从官网下的更低一点的版本。2.1.3,低版本都有验证是否管理员,怎么你发出来的2.2.0版本就没有了呢。我希望你只是忘记了。这可比后门还严重。。
<?php
namespace app\admin\controller;
use think\Session;
use think\Controller;
use think\Db;
use think\Request;
use auth;
class Base extends controller {
public function _initialize() {
$request = Request::instance();
$web_path = $request->root();
$module_name = $request->module();
$controller_name = $request->controller();
$action_name = $request->action();
$loginuid = Session('uid');
$authName = $module_name.'/'.$controller_name.'/'.$action_name;
$auth = new \auth\Auth();
$res=$auth -> check(strtolower($authName), $loginuid);
if($loginuid==1){
$res=TRUE;
}
if($controller_name == 'Login'){
$res=TRUE;
}
if($res==FALSE){
if (Request::instance()->isAjax()){
echo '没有权限!';
exit;
}else{
$this->error('没有访问权限');
exit;
}
}
if(!checkmodul('agents') && $controller_name == 'Agents'){
$this->error('您未购买代{过}{滤}理模块,请至 www.rain68.com 购买');
exit;
}
$agenttype=Db::name('agents_type')->where('id',1)->find();
if(!$agenttype){
$data = [
'id' => 1,
'name' => '普通',
'discount' => '100',
'min_score' => '0',
];
Db::name('agents_type')->insert($data);
}
$nav=new Nav();
$leftnav=$nav->leftnav();
$this -> assign('controller', $leftnav['controller']);
$this -> assign('action', $leftnav['action']);
$this -> assign('leftinfo', $leftnav['menuinfo']);
$this -> assign('levelid', $leftnav['levelid']);
$loginuser = Session::get('username');
$this -> assign('loginuser', $loginuser);
$this -> assign('loginuid', $loginuid);
}
}
都开源了,自己改一下嘛 这个应该不是你原创的吧,建议写上出处 改下数据库字段 a634085832 发表于 2017-10-9 22:56
这个应该不是你原创的吧,建议写上出处
请注意审题,我说了在精易上下的。并且第一张图片就是出处了吧。 群里有补丁,但是还是有些问题. 自己玩玩还行 实际应用需要自己改 wshq 发表于 2017-10-10 13:39
群里有补丁,但是还是有些问题. 自己玩玩还行 实际应用需要自己改
嗯。2.2.2版本已经修复了,但是我怀疑作者是故意放出这样的版本。稍微懂点的人都知道后台加用户验证。更别说作者专业的了。。
页:
[1]
2