getI18N(); return array( "" => $i18n->__("Wyłączony", null, "stSecurityBackend"), "shop" => $i18n->__("Dla całego sklepu", null, "stSecurityBackend"), "order" => $i18n->__("Dla procesu zamówienia i konta klienta", null, "stSecurityBackend"), ); } public static function addSecurityHeaders() { $response = sfContext::getInstance()->getResponse(); $config = stConfig::getInstance('stSecurityBackend'); if ($config->get('csp')) { $srcException = str_replace(array("\n", "\r"), " ", $config->get('csp_src_exception')) . " " . implode(" ", array_merge(self::$defaultSrc, self::getCSPExceptions())); $frameException = $config->get('csp_frame_exception'); $response->setHttpHeader('Content-Security-Policy', "default-src 'self' 'unsafe-inline' 'unsafe-eval' $srcException data:; form-action 'self' $srcException; frame-ancestors 'self' $frameException"); } $response->setHttpHeader('X-Content-Type-Options', 'nosniff'); $response->setHttpHeader('Referrer-Policy', 'strict-origin-when-cross-origin'); } public static function getSSL($host = null) { if (null === self::$ssl) { $config = stConfig::getInstance('stSecurityBackend'); if ($config->get('ssl')) { $host = self::getHost(); $uri = self::getUri(); $ssl = $config->get('ssl') === '1' ? 'order' : $config->get('ssl'); if ($ssl == 'order' && !in_array($host, $config->get('ssl_ignore_hosts', array())) || $ssl == 'shop' && !in_array($host, $config->get('ssl_ignore_hosts', array())) && !self::sslIgnoreUri($uri)) { self::$ssl = $ssl; } else { $config->set('ssl', false); self::$ssl = false; } } else { self::$ssl = false; } } return self::$ssl; } public static function setHost($host) { self::$host = $host; } public static function setUri($uri) { self::$uri = $uri; } protected static function sslIgnoreUri($uri) { $ignore = false; foreach (stConfig::getInstance('stSecurityBackend')->get('ssl_ignore_uri', array()) as $current) { if (strpos($uri, $current) !== false) { $ignore = true; } } return $ignore; } protected static function getUri() { return null !== self::$uri ? self::$uri : $_SERVER['REQUEST_URI']; } protected static function getHost() { return null !== self::$host ? (function_exists('idn_to_utf8') ? idn_to_utf8($host) : $host) : $_SERVER['HTTP_HOST']; } } ?>