首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在代码点火器中使用url输入防止进入站点

如何在代码点火器中使用url输入防止进入站点
EN

Stack Overflow用户
提问于 2010-12-17 17:16:12
回答 4查看 2.2K关注 0票数 0

我有一个使用CodeIgniter的网站,现在几乎已经完成了。我的问题是,即使我实现了会话并维护了登录系统,一个人也可以通过在浏览器地址栏中输入URL来访问任何页面。

我实施了这样的病人登记会议:

代码语言:javascript
复制
function index(){
    $this->is_logged_in();
}   

function log_out(){
    $this->session->sess_destroy();
    redirect('login_controller');   
}

function is_logged_in(){
    $is_logged_in = $this->session->userdata('is_logged_in');

    if(!isset($is_logged_in)||$is_logged_in!= TRUE ){
        redirect('login_controller');
    }else{
        $this->main();      
    }
}

匿名用户不能只通过输入控制器名来访问系统,如下所示:

控制器

但他们可以这样做:

有耐心的

Person不能通过键入控制器名称来访问,但可以通过键入比控制器更长的url进入系统,如上面所示。

这里有什么问题?可能的解决办法是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-17 17:23:21

听起来像是路由问题。您需要设置您的路线,以使第二种情况为非法,或者至少映射到与第一种情况相同的控制器。更多关于路由这里的信息。

票数 1
EN

Stack Overflow用户

发布于 2010-12-17 17:23:12

您必须在控制器的构造函数中实现登录签入。

每当调用控制器时,它都应该检查用户是否登录--如果没有,则重定向到登录页或错误页。

票数 8
EN

Stack Overflow用户

发布于 2010-12-17 17:27:11

若要确认是否进入登录检查,请将echoexit放在is_logged_in()函数中,并检查是否出现在http://localhost/demo_site/index.php/register_controller/search_patient中。

您可能在各自的模块中进行登录检查,因此在某些情况下没有登录。

最好是定义一组私有模块(例如在数组中),并在前端控制器本身(在一个地方)进行登录检查,而不是在模块级别上反复检查。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4473042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档