永远不要相信客户端提交的数据,所以对于输入数据的过滤势在必行,我们建议:

  • 开启令牌验证避免数据的重复提交;
  • 使用自动验证和自动完成机制进行初步过滤;
  • 使用系统提供的I函数获取用户输入数据;
  • 对不同的应用需求设置不同的安全过滤函数,常见的安全过滤函数包括stripslashes、htmlentities、htmlspecialchars和strip_tags等;

使用I函数过滤

使用系统内置的I函数是避免输入数据出现安全隐患的重要手段,I函数默认的过滤方法是htmlspecialchars,如果我们需要采用其他的方法进行安全过滤,有两种方式:

如果是全局的过滤方法,那么可以设置DEFAULT_FILTER,例如:

  1. 'DEFAULT_FILTER' => 'strip_tags',

设置了DEFAULT_FILTER后,所有的I函数调用默认都会使用strip_tags进行过滤。

当然,我们也可以设置多个过滤方法,例如:

  1. 'DEFAULT_FILTER' => 'strip_tags,stripslashes',

如果是仅需要对个别数据采用特殊的过滤方法,可以在调用I函数的时候传入过滤方法,例如:

  1. I('post.id',0,'intval'); // 用intval过滤$_POST['id']
  2. I('get.title','','strip_tags'); // 用strip_tags过滤$_GET['title']

要尽量避免直接使用$_GET $_POST $_REQUEST 等数据,这些可能会导致安全的隐患。 就算你要获取整个$_GET数据,我们也建议你使用 I('get.') 的方式

写入数据过滤

大理石平台厂家哪家好

如果你没有使用I函数进行数据过滤的话,还可以在模型的写入操作之前调用filter方法对数据进行安全过滤,例如:

  1. $this->data($data)->filter('strip_tags')->add();
 

最新文章

  1. CentOS6修改主机名(hostname)及 修改/etc/hosts 文件,增加ip和hostname的映射关系(转)
  2. Unity3d游戏中自定义贝塞尔曲线编辑器[转]
  3. JavaScript表单提交四种方式
  4. <转>MySQL性能优化的最佳20+条经验
  5. oracle insert &字符插入问题
  6. apache SetEnv 设置
  7. 被拒--悲剧之ORA-01017: invalid username/password; logon denied 错误
  8. Android 全屏方法
  9. 虚拟机Linux系统下配置网络
  10. supervisor安装使用和我踩过的坑
  11. locate 和 find
  12. MY Views on Doctor-patient relationship 英语医患关系议论文
  13. Java对象的访问方式
  14. python2内置属性
  15. POJ 1240 Pre-Post-erous! && East Central North America 2002 (由前序后序遍历序列推出M叉树的种类)
  16. CodeMirror的使用方法
  17. Hibernate---数据操作示例BY实体类注释
  18. mongodb 部署
  19. sublime 插件(持续更新)
  20. c/c++一些小知识点(特此总结)

热门文章

  1. pair queue____多源图广搜
  2. PHP-最长有效括号
  3. 39th 迷迷糊糊 二豆玩不转了
  4. appium1.4+华为8.0执行自动化脚本,报启动session失败,原因是unicode_ime_apk\Uni codeIME-debug.apk在手机上已存在,再次安装失败,导致启动session失败,解决办法:换高版本的appium
  5. CF687D Dividing Kingdom II
  6. Vue学习笔记【24】——Vue组件(组件切换)
  7. 自己写的一些Delphi常用函数
  8. js中的函数声明和函数表达式的区别
  9. 测试常用——linux 基础命令
  10. Dubbo入门到精通学习笔记(七):基于Dubbo的分布式系统架构介绍(以第三方支付系统架构为例)、消息中间件的作用介绍