Phalcon自定义过滤器及覆盖原有过滤器

##2016-11-16日更新:在Phalcon 3.0.1中测试发现get方法会过滤单引号和双引号了php


发现phalcon自带的string过滤器$request->get('key', 'string') 不会过滤单引号和双引号,这个很危险,因此在前台模块''fronted''的''di''注入的时候写一个''string''覆盖(注意后端模块不要覆盖string方法,后台须要接收单引号),同理也能够在这里自定义过滤器:
php过滤器:http://php.net/manual/en/filter.filters.sanitize.phphtml

$di->set('filter', function ()  {
    $filter = new \Phalcon\Filter();

    /*
     *
     *重写string过滤器:原string过滤器没有去除单引号, 原string的zep代码:filter_var(value, FILTER_SANITIZE_STRING);
     * 过滤器文档:http://php.net/manual/en/filter.filters.sanitize.php
    */
    $filter->add(
        "string",
        function ($value) {
            return filter_var($value, FILTER_SANITIZE_FULL_SPECIAL_CHARS); //等同调用了htmlspecialchars() 
        }
    );

    return $filter;

}, true);
相关文章
相关标签/搜索