如何使用codeigniter创建更安全的登录系统?

时间:2014-02-27 07:48:38

标签: php codeigniter

我想用codeigniter制作更安全的登录系统。我可以用这个例子做一个简单的。

http://www.codefactorycr.com/login-with-codeigniter-php.html

但问题在于,通过示例,我可以直接从url地址访问“check_database”方法。但我想阻止它。因此,如果用户试图访问该方法,他将被重定向到登录或欢迎页面。请注意,我可能有超过10种方法。我不想一个接一个地配置它们。你有什么解决方案吗?

3 个答案:

答案 0 :(得分:2)

使用私人功能将无效。

如果您阅读本手册,您可以看到需要在函数名之前用_编写函数。

因此function check_database()变为function _check_database()

在这里阅读 http://ellislab.com/codeigniter/user-guide/general/controllers.html#private

答案 1 :(得分:1)

在方法开放后包括:

if (!$this->input->post())
  redirect('somewherelse!');

因此,如果没有任何POST请求,则有人试图直接从URL访问它。

  

如果可能有超过10种方法......

如果所有方法都应该只接收POST请求,那么将它放在__construct()上,例如:

function __construct(){
  parent::__construct();

  if (!$this->input->post())
    redirect('somewherelse!');   
}

或者你可以创建一个自定义库,它可以有一个CodeIgniter引用来使用数据库,然后创建所有登录业务,仅返回truefalse记录状态。

答案 2 :(得分:0)

使用私人功能。这些不能通过URL& amp;将被公开访问隐藏