Пример #1
0
 public static function get()
 {
     if (self::$_ip === null) {
         try {
             self::$_ip = (string) infraRequestUtils::getRemoteAddress();
         } catch (Exception $ex) {
             self::$_ip = '';
         }
     }
     return self::$_ip;
 }
 protected static function getIp()
 {
     if (is_null(self::$_ip)) {
         require_once dirname(__FILE__) . '/../../alpha/apps/kaltura/lib/myIPGeocoder.class.php';
         self::$_ip = infraRequestUtils::getRemoteAddress();
     }
     return self::$_ip;
 }
Пример #3
0
 protected function getFieldValues($extraField)
 {
     switch (self::getExtraFieldType($extraField)) {
         case self::ECF_REFERRER:
             $values = array();
             // a request can theoritically have more than one referrer, in case of several baseEntry.getContextData calls in a single multirequest
             foreach ($this->_referrers as $referrer) {
                 $values[] = $referrer;
             }
             return $values;
         case self::ECF_USER_AGENT:
             if (isset($_SERVER['HTTP_USER_AGENT'])) {
                 return array($_SERVER['HTTP_USER_AGENT']);
             }
             break;
         case self::ECF_COUNTRY:
             return array(self::getCountry());
         case self::ECF_COORDINATES:
             return array(self::getCoordinates());
         case self::ECF_IP:
             if (is_array($extraField)) {
                 return array(infraRequestUtils::getIpFromHttpHeader($extraField[self::ECFD_IP_HTTP_HEADER], $extraField[self::ECFD_IP_ACCEPT_INTERNAL_IPS], true));
             }
             return array(infraRequestUtils::getRemoteAddress());
     }
     return array();
 }
Пример #4
0
 protected static function getStickySessionKey()
 {
     $ksObject = kCurrentContext::$ks_object;
     if ($ksObject && $ksObject->hasPrivilege(kSessionBase::PRIVILEGE_SESSION_KEY)) {
         return self::STICKY_SESSION_PREFIX . kCurrentContext::getCurrentPartnerId() . "_" . $ksObject->getPrivilegeValue(kSessionBase::PRIVILEGE_SESSION_KEY);
     }
     return self::STICKY_SESSION_PREFIX . infraRequestUtils::getRemoteAddress();
 }
Пример #5
0
 public function __toString()
 {
     if (self::$_ip === null) {
         self::$_ip = (string) infraRequestUtils::getRemoteAddress();
     }
     return self::$_ip;
 }
Пример #6
0
 public static function isInternalIp($ipAddress = null)
 {
     if (!$ipAddress) {
         $ipAddress = infraRequestUtils::getRemoteAddress();
     }
     if (isset(self::$isInternalIp[$ipAddress])) {
         return self::$isInternalIp[$ipAddress];
     }
     if (kConf::hasParam('internal_ip_range')) {
         $range = kConf::get('internal_ip_range');
         if (self::isIpInRanges($ipAddress, $range)) {
             self::$isInternalIp[$ipAddress] = true;
             return true;
         }
     }
     self::$isInternalIp[$ipAddress] = false;
     return false;
 }
Пример #7
0
 public function isValidBase()
 {
     if (!$this->real_str || !$this->hash) {
         return self::INVALID_STR;
     }
     // KS parsing failed
     if ($this->valid_until <= time()) {
         return self::EXPIRED;
     }
     // KS is expired
     if (array_key_exists(self::PRIVILEGE_IP_RESTRICTION, $this->parsedPrivileges) && !in_array(infraRequestUtils::getRemoteAddress(), $this->parsedPrivileges[self::PRIVILEGE_IP_RESTRICTION])) {
         return self::EXCEEDED_RESTRICTED_IP;
     }
     if (array_key_exists(self::PRIVILEGE_URI_RESTRICTION, $this->parsedPrivileges)) {
         $value = implode(self::PRIVILEGES_DELIMITER, $this->parsedPrivileges[self::PRIVILEGE_URI_RESTRICTION]);
         if ($_SERVER["REQUEST_URI"] != $value && (substr($value, -1) != '*' || substr($_SERVER["REQUEST_URI"], 0, strlen($value) - 1) != substr($value, 0, -1))) {
             return self::EXCEEDED_RESTRICTED_URI;
         }
     }
     return self::OK;
 }
Пример #8
0
 public function isUserIPAllowed()
 {
     $allowedIPRestriction = $this->isSetIPRestriction();
     if ($allowedIPRestriction && $allowedIPRestriction != infraRequestUtils::getRemoteAddress()) {
         KalturaLog::err("IP Restriction; allowed IP: [{$allowedIPRestriction}], user ip [" . infraRequestUtils::getRemoteAddress() . "] is not in range");
         return false;
     }
     return true;
 }
Пример #9
0
 public static function initApiMonitor($cached, $action, $partnerId, $clientTag = null)
 {
     if (is_null(self::$stream)) {
         self::init();
     }
     if (!self::$stream) {
         return;
     }
     self::$apiStartTime = microtime(true);
     self::$basicEventInfo = array(self::FIELD_SERVER => infraRequestUtils::getHostname(), self::FIELD_IP_ADDRESS => infraRequestUtils::getRemoteAddress(), self::FIELD_PARTNER_ID => $partnerId, self::FIELD_ACTION => $action, self::FIELD_CLIENT_TAG => $clientTag);
     if (!$cached) {
         require_once __DIR__ . '/../../../../../infra/log/UniqueId.php';
         self::$basicEventInfo[self::FIELD_UNIQUE_ID] = UniqueId::get();
     }
 }
 public function tryToValidateKS()
 {
     if (!$this->real_str || !$this->hash) {
         return false;
     }
     // KS parsing failed
     if ($this->valid_until <= time()) {
         return false;
     }
     // KS is expired
     if ($this->partner_id == -1 || $this->isWidgetSession()) {
         // Since anyone can create a widget session, no need to check for invalidation
         return true;
     }
     $allPrivileges = explode(',', $this->privileges);
     foreach ($allPrivileges as $priv) {
         $exPrivileges = explode(':', $priv);
         if (count($exPrivileges) == 2 && $exPrivileges[0] == self::PRIVILEGE_IP_RESTRICTION && $exPrivileges[1] != infraRequestUtils::getRemoteAddress()) {
             return false;
         }
     }
     $isInvalidated = $this->isKSInvalidated();
     if ($isInvalidated === null || $isInvalidated) {
         return false;
     }
     // KS is invalidated, or failed to check
     return true;
 }