Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Безопасность в kohana
http://forum.kohanaframework.su/viewtopic.php?f=32&t=555
Страница 1 из 1

Автор:  kiberman [ 18 янв 2013, 04:56 ]
Заголовок сообщения:  Безопасность в kohana

Хотелось бы услышать как защищать приложение, xss,sql-инъекции итд..

Автор:  Rush64 [ 18 янв 2013, 20:42 ]
Заголовок сообщения:  Re: Безопасность в kohana

ну насколько я знаю с инъекциями проблема решена на уровне query builder'a.

Автор:  WinterSilence [ 02 апр 2013, 21:33 ]
Заголовок сообщения:  Re: Безопасность в kohana

Цитата:
Защищает от инъекций первого порядка, но не защищает от инъекций второго порядка.
Т.е. если вам в данные подсунут SQL, то он успешно заэскейпится и попадет в базу без вреда.
Но когда вы эти данные извлечете из базы и захотите использовать в запросе, вас может ждать «сюрприз»

источник: http://habrahabr.ru/post/137664/#comment_4587315
из обсуждения pdo, но к kohana orm также применимо

Автор:  Sergey [ 03 апр 2013, 05:04 ]
Заголовок сообщения:  Re: Безопасность в kohana

В Gleez, защита приложения от Cross Site Request атак (CSRF) реализована так (0.9.11)


Код:
    /**
     * Returns TRUE if the POST has a valid CSRF
     *
     * Usage:<br>
     * <code>
     *     if ($this->valid_post('upload_photo')) { ... }
     * </code>
     *
     * @param   string|NULL  $submit Submit value [Optional]
     * @return  boolean  Return TRUE if it's valid $_POST
     *
     * @uses    Request::is_post
     * @uses    Request::post_max_size_exceeded
     * @uses    Request::get_post_max_size
     * @uses    Request::post
     * @uses    Message::error
     * @uses    CSRF::valid
     * @uses    Captcha::valid
     */
    public function valid_post($submit = NULL)
    {
        if ( ! $this->request->is_post())
        {
            return FALSE;
        }

        if (Request::post_max_size_exceeded())
        {
            Message::error(__('Max file size of :max Bytes exceeded!',
                array(':max' => Request::get_post_max_size())
            ));
            return FALSE;
        }

        if ( ! is_null($submit) )
        {
            if ( ! isset($_POST[$submit]))
            {
                Message::error(__('This form has altered. Please try submitting it again.'));
                return FALSE;
            }
        }

        $_token  = $this->request->post('_token');
        $_action = $this->request->post('_action');

        $has_csrf = ! empty($_token) AND ! empty($_action);
        $valid_csrf = $has_csrf AND CSRF::valid($_token, $_action);

        if ($has_csrf AND ! $valid_csrf)
        {
            // CSRF was submitted but expired
            Message::error(__('This form has expired. Please try submitting it again.'));
            return FALSE;
        }

        if (isset($_POST['_captcha']))
        {
            $captcha = $this->request->post('_captcha');
            if (empty($captcha))
            {
                // CSRF was not entered
                Message::error(__('The security code can\'t be empty.'));
                return FALSE;
            }
            elseif ( ! Captcha::valid($captcha))
            {
                Message::error(__('The security answer was wrong.'));
                return FALSE;
            }
        }

        return $has_csrf AND $valid_csrf;
    } 

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/