0

XSS 攻撃を防ぐために、この機能を zend フレーム ワークのすべての投稿データに適用したいと考えています。

static function safe_against_xss($argument) {

    $HtmlEntities_Filter = new Zend_Filter_HtmlEntities ( array ('quotestyle' => NULL, 'charset' => 'UTF-8' ) );
    $argument = $HtmlEntities_Filter->filter ( $argument );
    return $argument;
}

このコードをコントローラーで使用します

            $requests = $request->getPost() ;

            foreach ($requests as $key => $value)
            {
                $requests[$key]=Functions::safe_against_xss($value);
            }

うまくいきましたが、この関数をすべてのコントローラーのすべての投稿データに適用したいと考えています。自動的。

心から

4

1 に答える 1

0

私はこのコードを書きます:

$this->setRequest(Functions::safe_request($this->getRequest()));

コントローラーの初期化

次に、関数で:

     static function safe_against_xss($argument) {
    // $HtmlEntities_Filter = new Zend_Filter_HtmlEntities ( NULL, 'UTF-8'
    // );
    $HtmlEntities_Filter = new Zend_Filter_HtmlEntities ( array ('quotestyle' => NULL, 'charset' => 'UTF-8' ) );
    if (is_array($argument))
    {
        foreach($argument as $key => $value) {
            $argument[$key] = $HtmlEntities_Filter->filter ( $value );
        }
    }
    else 
    {
        $argument = $HtmlEntities_Filter->filter ( $argument );
    }
    return $argument;
}

static  function safe_post_params($params)
{
    $safePostParams = array();
    foreach($params as $key => $value) {
        $safePostParams[$key] = self::safe_against_xss($value);
    }
    return $safePostParams;
}

static  function safe_request($params)
{
    $params->setParams(Functions::safe_post_params($params->getParams()));
    $params->setPost(Functions::safe_post_params($params->getPost()));
    return $params;
}
于 2013-07-11T08:13:59.660 に答える