CI框架的安全性分析

 更新时间:2016年05月18日 12:42:21   作者:yanhui_wei  
这篇文章主要介绍了CI框架的安全性,结合实例形式分析了CI框架字符过滤的相关技巧,需要的朋友可以参考下

本文分析了CI框架的安全性。分享给大家供大家参考,具体如下:

用过ci框架的人都知道,ci框架能大大缩短你的代码。其实,ci框架更能提高你网站的安全性。

防止对数据库的攻击

数据输入可能引发许多问题。因为 HTML 和数据库的限制,数据中总包含特定的符号—举例来说,省略符号和引号—可能导致你的数据库遭到攻击,最终得到你无法预料的结果。

解决方案是在把这些数据存入数据库前对这些数据进行相关处理。这样做会浪费一些系统时间,增加一些额外编码。

CI 的表单辅助函数会自动地完成这些工作。因此,当你编写一个输入框时:

echo form_input('username', 'johndoe');

CI 也隐式地执行下列校验函数:

function form_prep($str = '')
{
  if ($str === '')
  {
    return '';
  }
  $temp = '__TEMP_AMPERSANDS__';
  // Replace entities to temporary markers so that
  // htmlspecialchars won't mess them up
  $str = preg_replace("/&#(\d+);/", "$temp\\1;", $str);
  $str = preg_replace("/&(\w+);/", "$temp\\1;", $str);
  $str = htmlspecialchars($str);
  // In case htmlspecialchars misses these.
  $str = str_replace(array("'", '"'), array("'", """), $str);
  // Decode the temp markers back to entities
  $str = preg_replace("/$temp(\d+);/","&#\\1;",$str);
  $str = preg_replace("/$temp(\w+);/","&\\1;",$str);
  return $str;
}

上述函数捕获像“&”这样的特殊字符,以便在你的页面提交时不会造成混乱。你应该知道,有些字符会引起问题。

并不是所有的用户都会中规中矩的输入符合要求的信息,你也不可能知道使用浏览器输入信息的是什么人,他们在想什么,做什么。你可以使用 CI 来防止输入不符合要求的信息。当然,你大可不必知道 CI 是如何在幕后为你做到这一切的,你只需要简单地输入如下代码:

echo form_input('username', 'johndoe');

更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《Zend FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

相关文章

  • PHP 根据key 给二维数组分组

    PHP 根据key 给二维数组分组

    这篇文章主要介绍了PHP 根据key 给二维数组分组的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • php结合ajax实现赞、顶、踩功能实例

    php结合ajax实现赞、顶、踩功能实例

    这篇文章主要介绍了php结合ajax实现赞、顶、踩功能实例,包含PHP代码、JS代码和数据库端代码,非常详细,入门非常好的例子,需要的朋友可以参考下
    2014-05-05
  • 浅析php单例模式

    浅析php单例模式

    本文从设计模式的概念说起,讲述了php设计模式中的单例模式,均是些基础性知识,给初学者们一个提高的契机。
    2014-11-11
  • ThinkPHP 3.2.2实现事务操作的方法

    ThinkPHP 3.2.2实现事务操作的方法

    这篇文章主要介绍了ThinkPHP 3.2.2实现事务操作的方法,简单分析了thinkPHP中事务的启动、提交、回滚等操作方法并给出了完整的事务提交与回滚操作实例,需要的朋友可以参考下
    2017-05-05
  • 作为PHP程序员应该了解MongoDB的五件事

    作为PHP程序员应该了解MongoDB的五件事

    本篇文章是对PHP程序员应该了解MongoDB的五件事进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php中session使用示例

    php中session使用示例

    这篇文章主要介绍了php中session使用示例,需要的朋友可以参考下
    2014-03-03
  • 基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码

    基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码

    当双方意见不统一的情况下,需要用投票达成协议,本文通过实例给大家介绍基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码,需要的朋友可以参考下
    2015-08-08
  • php 判断IP为有效IP地址的方法

    php 判断IP为有效IP地址的方法

    这篇文章主要介绍了php 判断IP为有效IP地址的方法,需要的朋友可以参考下
    2018-01-01
  • yii的入口文件index.php中为什么会有这两句

    yii的入口文件index.php中为什么会有这两句

    这篇文章主要介绍了yii的入口文件index.php中为什么会有这两句 的相关资料,需要的朋友可以参考下
    2016-08-08
  • 分享10段PHP常用代码

    分享10段PHP常用代码

    本文汇集PHP开发中经常用到的时段代码,包括Email、解压缩、64位编码、解析JSON等,对php常用代码感兴趣的朋友参考下
    2015-11-11

最新评论