CI框架的安全性分析


Posted in PHP onMay 18, 2016

本文分析了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框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php购物网站支付paypal使用方法
Nov 28 PHP
vs中通过剪切板循环来循环粘贴不同内容
Apr 30 PHP
php各种编码集详解和以及在什么情况下进行使用
Sep 11 PHP
php urlencode()与urldecode()函数字符编码原理详解
Dec 06 PHP
使用PHP把HTML生成PDF文件的几个开源项目介绍
Nov 17 PHP
php+mysql数据库实现无限分类的方法
Dec 12 PHP
微信公众平台开发之天气预报功能
Aug 31 PHP
详解PHP中cookie和session的区别及cookie和session用法小结
Jun 12 PHP
php用wangeditor3实现图片上传功能
Aug 22 PHP
php 策略模式原理与应用深入理解
Sep 25 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
Jan 26 PHP
Centos7安装swoole扩展操作示例
Mar 26 PHP
PHP的swoole扩展安装方法详细教程
May 18 #PHP
CI框架支持$_GET的两种实现方法
May 18 #PHP
CI框架中$this->load->library()用法分析
May 18 #PHP
CI框架数据库查询之join用法分析
May 18 #PHP
CI框架简单邮件发送类实例
May 18 #PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
May 18 #PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
May 18 #PHP
You might like
用PHP实现Ftp用户的在线管理
2012/02/16 PHP
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
2019/10/21 PHP
5 cool javascript apps
2007/03/24 Javascript
JavaScript高级程序设计 学习笔记 js高级技巧
2011/09/20 Javascript
最简单的js图片切换效果实现代码
2011/09/24 Javascript
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
2015/02/28 Javascript
jQuery实现简单的点赞效果
2020/05/29 Javascript
手把手教你搭建ES6的开发运行环境
2017/07/11 Javascript
JavaScript判断输入是否为数字类型的方法总结
2017/09/28 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
bootstrap下拉分页样式 带跳转页码
2018/12/29 Javascript
iview实现图片上传功能
2020/06/29 Javascript
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
在Python中操作字符串之replace()方法的使用
2015/05/19 Python
Python socket网络编程TCP/IP服务器与客户端通信
2017/01/05 Python
微信跳一跳小游戏python脚本
2018/01/05 Python
python根据url地址下载小文件的实例
2018/12/18 Python
python入门之井字棋小游戏
2020/03/05 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
联想哥伦比亚网上商城:Lenovo Colombia
2017/01/10 全球购物
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
馥蕾诗美国官网:Fresh美国
2019/10/09 全球购物
匡威俄罗斯官网:Converse俄罗斯
2020/05/09 全球购物
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
党支部承诺书范文
2014/03/28 职场文书
《故乡》教学反思
2014/04/10 职场文书
纪念九一八事变演讲稿1000字
2014/09/14 职场文书
用人单位终止解除劳动合同证明书
2014/10/06 职场文书
写给老师的感谢信
2015/01/20 职场文书
长江七号观后感
2015/06/11 职场文书
运动会三级跳加油稿
2015/07/21 职场文书
2015年高中语文教学总结
2015/08/18 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang