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

浏览:2506 发布日期: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个用法除此之外有没有明显的区别
第一种用法有没有安全隐患?

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

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

最佳答案
评论( 相关
后面还有条评论,点击查看>>