Home > Web Front-end > JS Tutorial > CI框架的安全性分析_php实例

CI框架的安全性分析_php实例

WBOY
Release: 2016-06-07 17:07:12
Original
1140 people have browsed it

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

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

防止对数据库的攻击

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

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

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

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

Copy after login
Copy after login

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;
}

Copy after login

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

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

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

Copy after login
Copy after login

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

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

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template