zoukankan      html  css  js  c++  java
  • thinkphp 输入过滤

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

    • 开启令牌验证避免数据的重复提交;
    • 使用自动验证和自动完成机制进行初步过滤;
    • 使用系统提供的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();
     
  • 相关阅读:
    Promise前期准备---区别实例对象与函数对象
    es6之函数参数默认值、字符串方法、for of
    es6之剩余和扩展参数
    es6之解构赋值
    es6之set和map
    前端知识点总结
    jQuery的12种选择器
    前端面试总结
    Closure
    PHP 中 16 个魔术方法详解
  • 原文地址:https://www.cnblogs.com/furuihua/p/11842186.html
Copyright © 2011-2022 走看看