private static function notifyIfURLIsNotSecure() { $isURLSecure = ProxyHttp::isHttps(); if ($isURLSecure) { return; } if (!Piwik::hasUserSuperUserAccess()) { return; } if (Url::isLocalHost(Url::getCurrentHost())) { return; } $message = Piwik::translate('General_CurrentlyUsingUnsecureHttp'); $message .= " "; $message .= Piwik::translate('General_ReadThisToLearnMore', array('<a rel="noreferrer" target="_blank" href="https://piwik.org/faq/how-to/faq_91/">', '</a>')); $notification = new Notification($message); $notification->context = Notification::CONTEXT_WARNING; $notification->raw = true; Notification\Manager::notify('ControllerAdmin_HttpIsUsed', $notification); }
/** * @param array $url * @return bool */ protected function isHostDefinedAndNotLocal($url) { return isset($url['host']) && !Url::isLocalHost($url['host']); }
/** * Returns Proxy to use for connecting via HTTP to given URL * * @param string $url * @return array */ private static function getProxyConfiguration($url) { $hostname = UrlHelper::getHostFromUrl($url); if (Url::isLocalHost($hostname)) { return array(null, null, null, null); } // proxy configuration $proxyHost = Config::getInstance()->proxy['host']; $proxyPort = Config::getInstance()->proxy['port']; $proxyUser = Config::getInstance()->proxy['username']; $proxyPassword = Config::getInstance()->proxy['password']; return array($proxyHost, $proxyPort, $proxyUser, $proxyPassword); }
/** * Returns the URL to this Piwik instance, eg. **http://demo.piwik.org/** or **http://example.org/piwik/**. * * @return string * @api */ public static function getPiwikUrl() { $url = Option::get(self::OPTION_PIWIK_URL); $isPiwikCoreDispatching = defined('PIWIK_ENABLE_DISPATCH') && PIWIK_ENABLE_DISPATCH; if (Common::isPhpCliMode() || SettingsServer::isArchivePhpTriggered() || !$isPiwikCoreDispatching) { return $url; } $currentUrl = Common::sanitizeInputValue(Url::getCurrentUrlWithoutFileName()); // when script is called from /misc/cron/archive.php, Piwik URL is /index.php $currentUrl = str_replace("/misc/cron", "", $currentUrl); if (empty($url) || $currentUrl != $url) { $host = Url::getHostFromUrl($url); if (strlen($currentUrl) >= strlen('http://a/') && !Url::isLocalHost($host)) { self::overwritePiwikUrl($currentUrl); } $url = $currentUrl; } if (ProxyHttp::isHttps()) { $url = str_replace("http://", "https://", $url); } return $url; }
/** * @dataProvider getIsLocalHost */ public function test_isLocalHost($expectedIsLocal, $host) { $this->assertSame($expectedIsLocal, Url::isLocalHost($host)); }