CodeIgniter安全相关设置汇总

CodeIgniter框架自身提供了一些安全设置如针对XSS和CSRF攻击的防范,针对SQL注入攻击的防范等。

就配置文件而言:

在application/config/config.php中

$config['encryption_key'] = '';//这个一定要设置 以加密自己的cookie等
$config['cookie_secure'] = TRUE;//设置为TRUE
/*
|--------------------------------------------------------------------------
| Global XSS Filtering全局XSS过滤设置为TRUE
|--------------------------------------------------------------------------
|
| Determines whether the XSS filter is always active when GET, POST or
| COOKIE data is encountered
|
*/
$config['global_xss_filtering'] = TRUE;
//防范csrf攻击
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'mall_tooken';
$config['csrf_cookie_name'] = 'mall_cookie';
$config['csrf_expire'] = 7200;//设置适当的时间

打开system/core/Input.php

将get和post方法中的$xss_clean设置为true 当然你的站点如果是安全无所谓的 那就不设置或是在调用get或是post取参数时明确设置就可以了

开发中需要注意:

1.使用

$this->input->get( 'name', true );

而不使用$_GET[ 'name' ];

2.使用

$this->input->post( 'name', true );

而不使用$_POST[ 'name' ];

3.使用ActiveRecord查询语句而尽量不用select之类的语句

时间: 2014-07-02

CodeIgniter框架过滤HTML危险代码

CodeIgniter过滤HTML危险代码的方法其实有好几种,其中最常见的有如下几种: 1.可以选择使用htmlspecialchars()方法过滤. 2.可以将config文件夹下面的config.php文件中的$config['global_xss_filtering'] = FALSE;设置为: 复制代码 代码如下: $config['global_xss_filtering'] = true; 但是这样设置后会加大服务器的开销的.所以看情况来设置. 3.可以在$this->input->

CI(CodeIgniter)框架中的增删改查操作

CodeIgniter的数据函数类在 \system\database\DB_active_rec.php 复制代码 代码如下: <span style="font-size:16px;">class ModelName extends CI_Model {     function __construct()     {         parent::__construct();     } }</span> 连接数据库:$this->load->

php之CodeIgniter学习笔记

在使用数据库之前,我们最好将数据库进行自动连接:config/autoload.php自动加载 $autoload['libraries'] = array('database');一些常用函数 选择数据$this->db->select();允许你在SQL查询中写 SELECT 部分.$this->db->where();$this->db->or_where();$this->db->where_in();允许你在SQL查询中写 WHERE部分,其余各种

CI框架的安全性分析

本文分析了CI框架的安全性.分享给大家供大家参考,具体如下: 用过ci框架的人都知道,ci框架能大大缩短你的代码.其实,ci框架更能提高你网站的安全性. 防止对数据库的攻击 数据输入可能引发许多问题.因为 HTML 和数据库的限制,数据中总包含特定的符号-举例来说,省略符号和引号-可能导致你的数据库遭到攻击,最终得到你无法预料的结果. 解决方案是在把这些数据存入数据库前对这些数据进行相关处理.这样做会浪费一些系统时间,增加一些额外编码. CI 的表单辅助函数会自动地完成这些工作.因此,当你编写一

CI框架安全类Security.php源码分析

CI安全类提供了全局防御CSRF攻击和XSS攻击策略,只需要在配置文件开启即可: 复制代码 代码如下: $config['csrf_protection'] = TRUE; $config['global_xss_filtering'] = TRUE; 并提供了实用方法: 复制代码 代码如下: $this->security->xss_clean($data);//第二个参数为TRUE,验证图片安全 $this->security->sanitize_filename()//过滤文

解析如何去掉CodeIgniter URL中的index.php

CI默认的rewrite url中是类似这样的,例如你的CI根目录是在/CodeIgniter/下,你的下面的二级url就类似这样http://localhost/CodeIgniter/index.php/welcome.不太好看,怎么把其中的index.php取掉呢?1. 打开apache的配置文件,conf/httpd.conf :LoadModule rewrite_module modules/mod_rewrite.so,把该行前的#去掉.搜索 AllowOverride None(

CodeIgniter模板引擎使用实例

一.示例: 通常在使用codeigniter的时候经常使用这样的方式载入: $this->load->view('about', $data); 通过这个类库,可以将一个视图载入到这个模板中: $this->template->load('template', 'about', $data); 这里将视图about.php载入到template模板文件中. 二.安装 下载ci_template_library.zip 解压后将Template.php放到application/li

CodeIgniter框架URL路由总结

URI 路由 一般来说,URI字符串有着和它唯一对应的控制器(controller)类/方法.URI的各个部分是如下模式(pattern): 复制代码 代码如下: example.com/class/function/id/ 然而在一些例子中,你也许想重定向这种关系来调用一个不同的类/方法(class/function),而不是与URL一一对应(的调用). 例如,你可能想使你的URL采用这种原型(prototype): 复制代码 代码如下: example.com/product/1/ exam

thinkphp框架实现路由重定义简化url访问地址的方法分析

本文实例讲述了thinkphp框架实现路由重定义简化url访问地址的方法.分享给大家供大家参考,具体如下: 如果按照正常访问的话,则需要输入一长串的url地址,这样会显得十分冗长,我可以可以通过对路由规则的重新定义简化url访问地址. <?php namespace app\index\controller; class Index{ public function index(){ return '我是index'; } public function hello($name='World')

thinkPHP5.0框架URL访问方法详解

本文实例讲述了thinkPHP5.0框架URL访问方法.分享给大家供大家参考,具体如下: URL设计 ThinkPHP5.0在没有启用路由的情况下典型的URL访问规则是: http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值...] 支持切换到命令行访问,如果切换到命令行模式下面的访问规则是: >php.exe index.php(或者其它应用入口文件) 模块/控制器/操作/[参数名/参数值...] 可以看到,无论是URL访问还是命

thinkphp的URL路由规则与配置实例

本文实例讲述了thinkphp的URL路由规则与配置方法.分享给大家供大家参考.具体分析如下: 一.URL规则 1.默认是区分大小写的 2.如果我们不想区分大小写可以改配置文件 复制代码 代码如下: 'URL_CASE_INSENSITIVE'=>true,//url不区分大小写 3.如果模块名为 UserGroupAction,那么url找模块就必要要写成 复制代码 代码如下: http://localhost/thinkphp4/index.php/user_group/index 4.如果

php url路由入门实例

一.什么是php的路由机制 1.路由机制就是把某一个特定形式的URL结构中提炼出来系统对应的参数.举个例子,如:http://main.test.com/article/1  其中:/article/1  -> ?_m=article&id=1. 2.然后将拥有对应参数的URL转换成特定形式的URL结构,是上面的过程的逆向过程. 二.PHP的URL路由方式 总体来说就是:获取路径信息->处理路径信息 URL路由方式: 第一种是通过url参数进行映射的方式,一般是两个参数,分别代表控制器

CodeIgniter框架常见用法工作总结

本文实例讲述了CodeIgniter框架常见用法.分享给大家供大家参考,具体如下: 1.codeigniter控制器超级对象和属性 $this->load; $this->load->database(); $this->load->view(); $this->load->helper(); $this->uri; $this->uri->segment(3); $this->input; 2.数据库配置 $this->load-&

基于Codeigniter框架实现的student信息系统站点动态发布功能详解

本文实例讲述了基于Codeigniter框架实现的student信息系统站点动态发布功能.分享给大家供大家参考,具体如下: 既然是动态站点,肯定有数据库表的存在,在此不废话,下面我们来看一下数据库表: CREATE TABLE IF NOT EXISTS `student`( //主键id `id` int(11) NOT NULL AUTO_INCREMENT, //学生姓名 `s_name` varchar(64) NOT NULL, //学生家长的姓名 `p_name` varchar(6

CI(CodeIgniter)框架视图中加载视图的方法

本文实例讲述了CI(CodeIgniter)框架视图中加载视图的方法.分享给大家供大家参考,具体如下: CI做为php的一个轻量级框架,其自身具备很多优点,在此我重点想说的是视图中加载视图. 1:在Application\config\database.php文件中设置好CodeIgniter 数据库变量之后,紧接着在Application\config\config.php文件中设置基础 URL.例如我的基础 URL 是:http://localhost/codeigniter/ 2:接下来创

CI(CodeIgniter)框架实现图片上传的方法

本文实例讲述了CodeIgniter框架实现图片上传的方法.分享给大家供大家参考,具体如下: 对于图片上传这种老生常谈的问题,在此我不得不再次重复一次,因为对于这框架毕竟有些地方值得自己学习与借鉴,这篇文章我是借助官方文档来写的,但有些地方任然需要标明一下. 下面我们来看看图片上传吧.首先在"./application/views/"文件夹下创一个视图文件:text.php,代码如下: <html> <head> <title>Upload Form

基于CI(CodeIgniter)框架实现购物车功能的方法

本文实例讲述了基于CI(CodeIgniter)框架实现购物车功能的方法.分享给大家供大家参考,具体如下: 在商城项目中,购物车是非常重要的一环,此处留下源码,留作笔记!!! 话不多说,往下看: 1. 源代码 <?php defined('BASEPATH') OR exit('No direct script access allowed'); class cart extends Home_Controller { private $info = array(); #前台提交数据 priva