<rmcreative>

RSS

Все заметки с тегами «HTTP, Zend Framework, X-Forwarded-For»

Можно уточнить:

  1. Опасность слепой проверки заголовка X-Forwarded-For

    15 апреля 2012

    Сегодня пришёл pull-request в Yii на эту тему. В классе CHttpRequest есть метод getUserHostAddress, который отдаёт нам IP пользователя. Предложение было перед возвратом $_SERVER['REMOTE_ADDR'] проверить, а нет ли чего в $_SERVER['HTTP_X_FORWARDED_FOR'], и, если есть — вернуть. Мотивация — будут видны IP пользователей за прокси.

    Так как такое заблуждение встречается ну очень часто, я даже не сразу вспомнил, откуда берётся $_SERVER['HTTP_X_FORWARDED_FOR']. А берётся он из заголовка HTTP запроса X-Forwarded-For и означает это то, что придти нам может что угодно.

    А теперь представим, что разработчик воспользовался изменённым методом getUserHostAddress, проверяющим X-Forwarded-For:

    if(in_array(Yii::app()->request->getUserHostAddress(), $allowedAddresses))
    {
      // даём доступ к админке
    }

    Тем, кто пишет на Zend Framework, кстати, стоит проверить свой код потому как Zend_Controller_Request_Http::getClientIp() без переданного аргументом false как раз проверяет X-Forwarded-For:

    /**
      * Get the client's IP addres
      *
      * @param  boolean $checkProxy
      * @return string
      */
      public function getClientIp($checkProxy = true)
      {
        if ($checkProxy && $this->getServer('HTTP_CLIENT_IP') != null) {
          $ip = $this->getServer('HTTP_CLIENT_IP');
        } else if ($checkProxy && $this->getServer('HTTP_X_FORWARDED_FOR') != null) {
          $ip = $this->getServer('HTTP_X_FORWARDED_FOR');
        } else {
          $ip = $this->getServer('REMOTE_ADDR');
        }
        return $ip;
      }

    Заслал репорт в трекер Zend Framework на всякий случай.

    36 комментариев

rokokbet

situs toto

situs toto

rokokbet

situs toto

rokokbet

situs toto

situs toto

situs toto

situs toto

situs toto

rokokbet

rokokbet

toto slot

rokokbet

situs toto

rokokbet

rokokbet

rokokbet

rokokbet

situs toto

situs toto

situs toto

situs toto

situs toto

situs toto

situs toto

situs toto

situs toto

situs toto

situs toto

slot gacor

situs toto

situs toto

situs toto slot gacor Slot Thailand Slot777 Slot Gacor Pg Soft Slot Gacor Slot88 Slot Online Terlengkap slot gacor Slot777 Deposit Via Dana slot online Slot Gacor Bet 100