搜索
系统检测到您的用户名不符合规范:

I函数提问 I('id', '' ,'md5') 和 md5(I('id'))有什么不同

浏览:2564 发布日期:2013年08月15日 分类:求助交流 关键字: I函数 过滤 安全 XSS 传值 变量获取
I方法的第三个参数如果传入函数名,则表示调用该函数对变量进行过滤并返回(在变量是数组的情况下自动使用array_map进行过滤处理),否则会调用PHP内置的filter_var方法进行过滤处理,例如: I('post.email','',FILTER_VALIDATE_EMAIL);I('id', '', 'md5') 中显然id值没有用默认过滤器过滤
md5(I('id')) 中id是先被默认过滤器过滤再被md5加密的

第一种方法少过滤一次理论上效率比较高 代码量结构相对清晰
第二种更加安全

除了md5 以外 还有类似 intval 等变量类型转换都可以用在此处

有没有高手可以解答一下 这2个用法除此之外有没有明显的区别
第一种用法有没有安全隐患?

在实际项目应用时 那种方法比较推荐呢?

请各位大侠们 不吝赐教 十分感谢!

最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
ffsky128
积分:1747 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /