当前位置:  开发笔记 > 编程语言 > 正文

codeigniter中的安全性

如何解决《codeigniter中的安全性》经验,为你挑选了1个好方法。

下午好,

我对CodeIgniter的安全性有一些疑问,首先是:

我有一个控制器:news.php,其中有一个名为view的方法

例:

class News extends CI_Controller{

    public function view( $id )
    {
        $this->load->model('news_model');
        $this->news_model->get_by_id( $id );
        // ...
    }
}

这种工作形式安全吗?没有URL注入SQL的风险?考虑到这个页面被访问,所以mywebpage/news/number_id.过滤intval()或不必要的过程会很有趣吗?

我的第二个问题是:

默认情况下,CodeIgniter xss过滤器可以发布和获取,但未知的是通过CodeIgniter过滤HTML的方法,我在CodeIgniter中创建了一个帮助器,有一些类似于本机CodeIgniter的方法吗?

function remove_xss_html($string){

    if( is_array( $string ) ){

    $return_array = array();

        foreach( $string as $item )
        {
            if(!get_magic_quotes_gpc())
            {
                $return_array[] =  addslashes( htmlspecialchars( strip_tags( $item ) ) );
            }
            else
            {
                $return_array[] =  htmlspecialchars( strip_tags( $item ) );
            }
        }
            return $return_array;
    }
    else
    {
        return htmlspecialchars( strip_tags( $string ) );
    }
}

第三个也是最后一个问题是:

如果我将变量$ this-> input-> post('my_var')直接发送到没有过滤器的数据库,我冒着sql注入的风险?CodeIgniter或过滤器如此安全?

IMPORTANTE:我的英语不是很好,我用google翻译并修复了我的能力.

谢谢你们 ...



1> Wesley Murch..:

如果您使用Active Record类进行数据库交互,则数据将自动转义:

除了简单性之外,使用Active Record功能的一个主要好处是它允许您创建独立于数据库的应用程序,因为查询语法是由每个数据库适配器生成的.它还允许更安全的查询,因为系统会自动转义值.

如果没有,并且您手动运行查询,则需要自行转义.

关于你的功能的一些建议:

public function view( $id )
{
    $this->load->model('news_model');
    $this->news_model->get_by_id( $id );
    // ...
}

如果$idURL中不存在,您将收到错误通知.设置默认值:

public function view( $id = NULL )

然后检查控制器中的值.例:

if ( ! $id)
{
    redirect('somwhere/else');
}

此外,请确保在继续之前得到结果(false如果没有找到记录,我假设您的模型返回此处):

$record = $this->news_model->get_by_id( $id );
if ( ! $record) // redirect with error message or something

您可以根据需要验证$ids类型或完整性,但为了简单起见,我只是将其传递给模型,false如果没有找到记录则返回.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有