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

如何使用CakePHP防止参数中的SQL注入

如何解决《如何使用CakePHP防止参数中的SQL注入》经验,为你挑选了1个好方法。

使用从用户输入接收的参数时,如何防止在从数据库中获取数据时进行SQL注入:

if(isset($_GET['cityval']) && $_GET['cityval'] !=''){

    $city = $this->request->query('cityval'); 

      $searching .= " and college_city in ($city) ";
    } else {
        $searching .= "";
    }
    if(isset($_GET['scholarship']) && $_GET['scholarship'] !=''){
        $searching .= " and college_scholarship = '".$_GET['scholarship']."' ";
    } else {
        $searching .= "";
    }

我的主要查询如下

$search = $this->Search->query("select * from  colleges where college_id!='' and status='active' $searching order by $order desc limit $start, 10 ");

burzum.. 5

开始实际使用框架,或者根本不使用框架。您没有使用请求对象,没有使用ORM,而是在框架上或围绕框架工作。从代码中可以很明显地看出,您不必花时间阅读本手册。

wcomnisky的答案有很多不需要的代码,也不是按预期的方式使用框架的。

如果您想创建一些编写良好的代码,那么您真的应该从做官方文档book.cakephp.org的博客教程开始。如果不停止阅读,请按照wcomniskys的建议去做。它可能有效,但是它不是好的代码,也不是使用框架的正确方法,也不是最简单的解决方案。如果您对正确执行操作不感兴趣,可以立即停止阅读。


您尝试做的显然是通过get参数进行搜索。有一个很棒的插件,使它变得非常简单https://github.com/FriendsOfCake/search

使用插件实际上可能就这么简单:

$query = $this->Colleges->find('search', [
    'search' => $this->request->query
]);
$this->set('results', $this->Paginator->paginate($query));

搜索参数本身将在模型层中处理,请查看插件文档。该框架将负责清理输入。

上面的内容要求您实际上了解框架的基本知识,并且知道自己的工作。如果出于某种原因对不使用框架提供的内容不感兴趣,那么最好根本不使用它,因为这只会堆积无法维护的代码并导致开销。



1> burzum..:

开始实际使用框架,或者根本不使用框架。您没有使用请求对象,没有使用ORM,而是在框架上或围绕框架工作。从代码中可以很明显地看出,您不必花时间阅读本手册。

wcomnisky的答案有很多不需要的代码,也不是按预期的方式使用框架的。

如果您想创建一些编写良好的代码,那么您真的应该从做官方文档book.cakephp.org的博客教程开始。如果不停止阅读,请按照wcomniskys的建议去做。它可能有效,但是它不是好的代码,也不是使用框架的正确方法,也不是最简单的解决方案。如果您对正确执行操作不感兴趣,可以立即停止阅读。


您尝试做的显然是通过get参数进行搜索。有一个很棒的插件,使它变得非常简单https://github.com/FriendsOfCake/search

使用插件实际上可能就这么简单:

$query = $this->Colleges->find('search', [
    'search' => $this->request->query
]);
$this->set('results', $this->Paginator->paginate($query));

搜索参数本身将在模型层中处理,请查看插件文档。该框架将负责清理输入。

上面的内容要求您实际上了解框架的基本知识,并且知道自己的工作。如果出于某种原因对不使用框架提供的内容不感兴趣,那么最好根本不使用它,因为这只会堆积无法维护的代码并导致开销。

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